谢谢

解决方案 »

  1.   

    好久没来CSDN了,贴一个以前写的函数,没做覆盖检测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;
        Windows.FindClose(hFindFile);
      end
      else
      begin
        ChDir(sCurDir);
        result:=false;
        exit;
      end;
      //回到原来的目录下
      ChDir(sCurDir);
      result:=true;
    end;
      

  2.   

    WinExec('xcopy c:\a\*.* c:\b\ /s',SW_HIDE);