文件复制使用shfileoperation函数实现就可以了,它可以调用windows自带的复制文件的进度显示,应当满足你的要求。

解决方案 »

  1.   

    1、要不也可以用COPYFILE
       BOOL CopyFile(
        LPCTSTR lpExistingFileName, // pointer to name of an existing file 
        LPCTSTR lpNewFileName, // pointer to filename to copy to 
        BOOL bFailIfExists  // flag for operation if file exists 
       );
    2、直接COPY一个备份不可以好了。
      

  2.   

    TO_COPY
    FO_DELETE
    FO_MOVE
    FO_RENAME
    Example:uses ShellAPI;procedure TForm1.Button1Click(Sender: TObject);
    var
    Fo      : TSHFileOpStruct;
    buffer  : array[0..4096] of char;
    p       : pchar;begin
      FillChar(Buffer, sizeof(Buffer), #0);
      p := @buffer;
      p := StrECopy(p, 'C:\DownLoad\1.ZIP') + 1;
      p := StrECopy(p, 'C:\DownLoad\2.ZIP') + 1;
      p := StrECopy(p, 'C:\DownLoad\3.ZIP') + 1;
      StrECopy(p, 'C:\DownLoad\4.ZIP');  FillChar(Fo, sizeof(Fo), #0);
      Fo.Wnd    := Handle;
      Fo.wFunc  := FO_COPY;
      Fo.pFrom  := @Buffer;
      Fo.pTo    := 'D:\';
      Fo.fFlags := 0;
      if ((SHFileOperation(Fo) <> 0) or
          (Fo.fAnyOperationsAborted <> false)) then