复制文件夹时报“无法复制文件:无法读源文件或磁盘”,为什么?怎么办?

zhuma 2003-10-05 10:23:17
我用了以下代码复制文件夹

//复制指定文件夹及其下所有文件
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;

但我如果复制工作目录下的文件夹就会报
“无法复制文件:无法读源文件或磁盘”
怎么回事?如何解决?望赐教

同样的我删除工作目录下的文件夹时也会报
“无法删除文件:无法读源文件或磁盘”
...全文
16910 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
2312 2003-10-06
  • 打赏
  • 举报
回复
看文件是不是正在使用中
oracs 2003-10-06
  • 打赏
  • 举报
回复
pFrom和pTo都要以两个#0结束,楼主注意了么?
p.pFrom:='f:\*.exe#0#0';
p.pTo:='e:\#0#0';
47522341 2003-10-06
  • 打赏
  • 举报
回复
工作目录下的文件夹?
bestluo 2003-10-06
  • 打赏
  • 举报
回复
原文件路径有问题,请检查
zhuma 2003-10-06
  • 打赏
  • 举报
回复
再问一下
#0#0是什么意思?
zhuma 2003-10-06
  • 打赏
  • 举报
回复
还有#0#0
也是必要的

复制操作时没有#0#0好像没出问题
但删除时没有#0#0就报错了
谢谢oracs(黑色柳丁)
zhuma 2003-10-06
  • 打赏
  • 举报
回复
是我的srcFolder, destFolder写错了
我后面多加了一个"\"

多谢诸位的指点了
结贴
huojiehai 2003-10-05
  • 打赏
  • 举报
回复
1。可能srcFolder, destFolder给出有误
2。可能是文件正被使用

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧