我用了以下代码复制文件夹//复制指定文件夹及其下所有文件
procedure TNSFForm.CopyFolder(srcFolder, destFolder: String);
var
  p: _shfileopstruct;
begin
  p.Wnd:=handle;
  p.wFunc:=FO_Copy;
  p.pFrom:=PChar(srcFolder);  //源文件夹
  p.pTo:=PChar(destFolder);   //目的文件夹
  p.fFlags:=FOF_ALLOWUNDO+FOF_NOCONFIRMATION;//标志表明允许恢复,无须确认
  p.hNameMappings:=nil;
  p.lpszProgressTitle:='正在删除文件夹';
  p.fAnyOperationsAborted:=False;
  shfileoperation(p);
end;但我如果复制工作目录下的文件夹就会报
“无法复制文件:无法读源文件或磁盘”
怎么回事?如何解决?望赐教同样的我删除工作目录下的文件夹时也会报
“无法删除文件:无法读源文件或磁盘”

解决方案 »

  1.   

    1。可能srcFolder, destFolder给出有误
    2。可能是文件正被使用
      

  2.   

    pFrom和pTo都要以两个#0结束,楼主注意了么?
      p.pFrom:='f:\*.exe#0#0';
      p.pTo:='e:\#0#0';
      

  3.   

    是我的srcFolder, destFolder写错了
    我后面多加了一个"\"多谢诸位的指点了
    结贴
      

  4.   

    还有#0#0
    也是必要的复制操作时没有#0#0好像没出问题
    但删除时没有#0#0就报错了
    谢谢oracs(黑色柳丁)