比如我想把'f:\1\aaaa.txt'拷贝到'f:\2\'下,我该怎么做?

解决方案 »

  1.   

    function CopyFile(SourceName,TargetName:String):Boolean;
    var
      F:TShFileOpStruct;
    begin
      F.wnd:=InputForm.Handle;
      F.wFunc:=FO_COPY; {操作方式}
      F.pFrom:=PChar(SourceName+#0#0);
      F.pTo:=PChar(TargetName+#0#0);
      F.fFlags:=FOF_ALLOWUNDO OR FOF_RENAMEONCOLLISION;
      result:= ShFileOperation(F)=0;
    end;方法1(强力推荐)
      通过调用Win 95系统外壳来完成,需要在USES子句中添加SHELLAPI单元。这种方法
    与Win 95下文件拷贝的方式完全一样,也会自动出现“正在拷贝...”的提示。如果目标
    文件已经存在,函数可以根据操作标志位自动生成多份复件。  改变wFunc的值,则可以完成删除、更名、放到回收站等功能。笔者认为这是最好的
    一种方法。  procedure TForm1.Button5Click(Sender: TObject);
      var
      F:TShFileOpStruct;
      begin
      F.wnd:=Handle;
      F.wFunc:=FO—COPY; {操作方式}
      F.pFrom:=′C:\DEMO.DAT′;
      F.pTo:=′F:\TEST.DAT′;
      F.fFlags:=FOF—ALLOWUNDO OR FOF—RENAMEONCOLLISION; {操作选项}
      if ShFileOperation(F)<>0 then
      ShowMessage(′文件拷贝失败!′);
      end;
    方法2 (推荐使用)  采用文件流方式,可以直接对文件进行读写。
      procedure TForm1.Button2Click(Sender: TObject);
      Var
       S, T: TFileStream; {文件流}
       SourceFileName,DestFileName:String;{源文件和目的文件名}
      Begin
       S := TFileStream.Create( SourceFileName, fmOpenRead );
       try
       T := TFileStream.Create( DestFileName,fmOpenWrite or fmCreate );
       try
       T.CopyFrom(S, S.Size ) ;
      finally
       T.Free;
      end;   finally
       S.Free;
       end; End;
      方法3(推荐在做安装盘时使用
      采用压缩与解压缩单元LZEXPAND,需要在USES子句中添加LZEXPAND单元。  procedure TForm1.Button3Click(Sender: TObject);
      var
       SourceHandle, DestHandle: Integer; {文件句柄}
       SourceFileName,DestFileName:String;{源文件和目的文件名}
       begin
       {打开文件}
       SourceFileName:=′C:\DEMO.DAT′;
       DestFileName:=′F:\TEST.DAT′;
       SourceHandle := FileOpen(SourceFileName,0);
       DestHandle := FileCreate(DestFileName);
       {拷贝}
       LZCopy(SourceHandle,DestHandle);
       {关闭文件}
       FileClose(SourceHandle);
       FileClose(DestHandle)
      end;
      

  2.   


    不错啊~~~~~~~~~小虫~~给你一个简单的吧:
    CopyFile(PChar('f:\1\aaaa.txt'), PChar('f:\2\aaaa.txt'), True);详细用法见在线帮助!!