如何实现文件的COPY命令急!!!

解决方案 »

  1.   

    function DoCopyDir(sDirName:String;
    sToDirName:String):Boolean;
    var
       hFindFile:Cardinal;
       t,tfile:String;
       sCurDir:String[255];
       FindFileData:WIN32_FIND_DATA;
    begin
       //先保存当前目录
       sCurDir:=GetCurrentDir;
       ChDir(sDirName);
       hFindFile:=FindFirstFile('*.*',FindFileData);
       if hFindFile< >INVALID_HANDLE_VALUE then
       begin
            if not DirectoryExists(sToDirName) then
               ForceDirectories(sToDirName);
            repeat
                  tfile:=FindFileData.cFileName;
                  if (tfile='.') or (tfile='..') then
                     Continue;
                  if FindFileData.dwFileAttributes=
                  FILE_ATTRIBUTE_DIRECTORY then
                  begin
                       t:=sToDirName+'\'+tfile;
                       if  not DirectoryExists(t) then
                           ForceDirectories(t);
                       if sDirName[Length(sDirName)]< >'\' then
                          DoCopyDir(sDirName+'\'+tfile,t)
                       else
                          DoCopyDir(sDirName+tfile,sToDirName+tfile);
                  end
                  else
                  begin
                       t:=sToDirName+'\'+tFile;
                       CopyFile(PChar(tfile),PChar(t),True);
                  end;
            until FindNextFile(hFindFile,FindFileData)=false;
            FindClose(hFindFile);
       end
       else
       begin
            ChDir(sCurDir);
            result:=false;
            exit;
       end;
       //回到原来的目录下
       ChDir(sCurDir);
       result:=true;
    end;
      

  2.   

    copyfile(pchar(d:\待复制文件),pchar(savedialog1.filename),false)
      

  3.   

    再给一个用ShellAPI的方法
    uses
      ShellAPI;function DelPath(const Handle: THandle; const SrcFile, DstFile: String): Boolean;
    var
      SHFileOpStruct: TSHFileOpStruct;
    begin
      if FileExists(SrcFile) or DirectoryExists(SrcFile) then
      begin
        FillChar(SHFileOpStruct, SizeOf(SHFileOpStruct), 0);
        SHFileOpStruct.Wnd := Handle;
        SHFileOpStruct.wFunc := FO_COPY;
        SHFileOpStruct.fFlags := FOF_NOCONFIRMATION;
        SHFileOpStruct.pFrom :=  PAnsiChar(SrcFile);
        SHFileOpStruct.pTo := PAnsiChar(DstFile);
        Result := SHFileOperation(SHFileOpStruct) = 0;
      end
      else
        Result := False;
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      if DelPath(Self.Handle, 'D:\1', 'D:\2') then
        ShowMessage('Copy成功!')
      else
        ShowMessage('Copy失败!')
    end;
      

  4.   

    用COPYFILE就可以了
    copyfile(pchar('原文件路径),pchar('目标文件路径'),false);
      

  5.   

    copyfile拷贝文件
    SHFileOperation文件夹拷贝
    上面有不错的例子