//====删除旧文件====
          objSystem := Createoleobject('Scripting.FileSystemObject');
          objsystem.deletefolder(Trim(ED_serverPath.Text),True);
          //把本地的新文件上传
          objsystem := createoleobject('Scripting.FileSystemObject');
          objsystem.copyFolder(Trim(ED_LocalPath.text),Trim(ED_serverPath.Text),true);
          //以下实现把旧文件备份,新文件拷贝过来的操作.以上是我操作的代码。第一次没有问题。第二次就不能够删除,拷贝文件夹了,机器重起之后第一次又可以。第二次又不行了。
文件夹拷贝删除还有什么别的好方法?高手纸点一二。谢了

解决方案 »

  1.   

    这个也没有用。难道没次MKDir();后也需要什么别的操作?
    strGUID:= CreateClassID();//取得不重复的字符串
    MkDir(strGUID);
            try
              objSystem := Createoleobject('Scripting.FileSystemObject');
              objsystem.copyfolder(Trim(ED_ServerPath.Text),Trim(ED_serverBkPath.Text)+NewFolderName,true);
            finally
              //====删除旧文件====
              objSystem := Createoleobject('Scripting.FileSystemObject');
              objsystem.deletefolder(Trim(ED_serverPath.Text),True);
              objSystem := Unassigned;
              //把本地的新文件上传
              objsystem := createoleobject('Scripting.FileSystemObject');
              objsystem.copyFolder(Trim(ED_LocalPath.text),Trim(ED_serverPath.Text),true);
              objSystem := Unassigned;
              //以下实现把旧文件备份,新文件拷贝过来的操作.
    End;
    高手指点呀!
      

  2.   

    Others ,挺好用的procedure copyfile(Sfname.Dfname:string):far;export;//带路径的文件名;
    Var
    Sourcef,Destinef:file;
    NumRead,NumWritten:Integer;
    Buf:array[1..4096] of char;//定义缓冲区;
    Begin
    AssignFile(Sourcef,dfname);
    Reset(Sourcef,1);
    AssignFile(Destinef,1);
    Rewrite(Destinef,1);
    Repeat
    BlockRead(Sourcef,Buf,SizeOf(Buf),Numread);//读源文件
    BlockWrite(destinef,buf,NumRead,NumWritten);//写目标文件;
    Until (Numread=0) or (Numwritten<>numread);
    closeFile(soucef);
    Closefile(destinef);
    end;
      

  3.   

    wjlsmail(计算机质子)的在Delphi5上调试通不过,
    Linux2001(努力工作中...) 的如果一个文件夹下边很多文件都要拷贝,不可一个个的写CopyFile(),这个方法早被否决了!
    还有哪位能够指点?谢了先!
      

  4.   

    哎,用SHFileOperation函数,一次就搞定了。何必那么麻烦?帮助写的也很清楚。