如题,如有代码请贴出来或发我E-mail:[email protected],万分感激……………………………………………………………………………………

解决方案 »

  1.   

    使用SHFileOperation代码:
    http://www.cx66.com/cxgzs/program/delphi/966.htm
      

  2.   

    如果目的主要不是在遍历,俺推荐直接调用SaveToStream或者SaveToFile,剧EASY。
      

  3.   

    代码有很多, 我只说说思路:
    用FindFirst查找, 当结果为0表示找到了, 检查结果属性是否包含faDirectory, 如果是且名不为'.'和'..'那就递归调用遍例子目录. 最后别忘了FindClose释放资源.
      

  4.   

    补充一下楼上的,找下一个目录或文件要用FindNext
      

  5.   

    huhu,  pankun(剑神一笑) 说得对, 忘记了... ^_^#
      

  6.   

    procedure CopyDirectoryTree(AHandle: THandle; const AFromDirectory, AToDirectory: String);
    var
     SHFileOpStruct: TSHFileOpStruct;
     FromDir: PChar;
     ToDir: PChar;
    begin GetMem(FromDir, Length(AFromDirectory)+2);
     try
       GetMem(ToDir, Length(AToDirectory)+2);
       try     FillChar(FromDir^, Length(AFromDirectory)+2, 0);
         FillChar(ToDir^, Length(AToDirectory)+2, 0);     StrCopy(FromDir, PChar(AFromDirectory));
         StrCopy(ToDir, PChar(AToDirectory));     with SHFileOpStruct do
         begin
           Wnd    := AHandle;   // Assign the window handle
           wFunc  := FO_COPY;  // Specify a file copy
           pFrom  := FromDir;
           pTo    := ToDir;
           fFlags := FOF_NOCONFIRMATION or FOF_RENAMEONCOLLISION;
           fAnyOperationsAborted := False;
           hNameMappings := nil;
           lpszProgressTitle := nil;
           if SHFileOperation(SHFileOpStruct) <> 0 then
             RaiseLastWin32Error;
         end;
       finally
         FreeMem(ToDir, Length(AToDirectory)+2);
       end;
     finally
       FreeMem(FromDir, Length(AFromDirectory)+2);
     end;
    end;
    CopyDirectoryTree(Handle, edtFromDir.Text, edtToDir.Text);