DELPHI 怎么复制一个文件夹 
注: 文件夹 下还有子文件夹 子文件夹下  还有 子文件夹 还有里面所有的文件

解决方案 »

  1.   

    谢谢 linzhengqun(风)  在群里的帮助 以下是他给我的 代码 
    procedure TForm1.copyPathFile( strSourFilePath:string;  DeFieldpath:string);//将一个文件夹内文件复制到另外一个文件夹内
    var
     OpStruc:TSHFileOpStruct;
      FromBuf,ToBuf:Array[0..128] of Char;
    begin
      try
        FillChar(FromBuf,Sizeof(FromBuf),0);
        FillChar(ToBuf,Sizeof(ToBuf),0);
        StrPCopy(FromBuf,Pchar(strSourFilePath));
    //strSourFilePath
        StrPCopy(ToBuf,Pchar(DeFieldpath));
           with OpStruc do
        begin
          Wnd:=handle;
          wFunc:=FO_COPY;
          pFrom:=@FromBuf;
          pTo:=@ToBuf;
          fFlags:=FOF_NOCONFIRMATION or FOF_MULTIDESTFILES or FOF_SIMPLEPROGRESS;// or FOF_RENAMEONCOLLISION;
          fAnyOperationsAborted:=False;
          hNameMappings:=nil;
          lpszProgressTitle:=nil;
        end;
        if SHFileOperation(OpStruc)=0 then
        begin
        end;
      except
        raise Exception.Create('错误');
      end;
    end;
      

  2.   

    procedure TForm1.copyPathFile(strSourFilePath:string;DeFieldpath:string);//将一个文件夹内文件复制到另外一个文件夹内
    var
     OpStruc:TSHFileOpStruct;
      FromBuf,ToBuf:Array[0..128] of Char;
    begin
      try
        FillChar(FromBuf,Sizeof(FromBuf),0);
        FillChar(ToBuf,Sizeof(ToBuf),0);
        StrPCopy(FromBuf,Pchar(strSourFilePath));
    //strSourFilePath
        StrPCopy(ToBuf,Pchar(DeFieldpath));
           with OpStruc do
        begin
          Wnd:=handle;
          wFunc:=FO_COPY;
          pFrom:=@FromBuf;
          pTo:=@ToBuf;
          fFlags:=FOF_NOCONFIRMATION or FOF_MULTIDESTFILES or FOF_SIMPLEPROGRESS;// or FOF_RENAMEONCOLLISION;
          fAnyOperationsAborted:=False;
          hNameMappings:=nil;
          lpszProgressTitle:=nil;
        end;
        if SHFileOperation(OpStruc)=0 then
        begin
        end;
      except
        raise Exception.Create('错误');
      end;
    end;用这个API干净利落
    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 
       );