关于文件删除

Justin 2003-08-20 01:47:34
procedure Tmanifest.Btn_StorClick(Sender: TObject);
var
Dir_Src,Dir_Bak:string;
F_name:string;
i:integer;
begin
Dir_Src := 'E:\_libsrc\manifest\';
Dir_Bak := 'E:\_databak\manifest\';
if SearchFile(Dir_Src,'*.*') then
begin
for i := 0 to Flist.Count-1 do
begin
F_name := Flist.Strings[i];
CopyFile(PChar(Dir_Src + F_name),PChar(Dir_Bak + F_name),False);
deletefile(Dir_Src + F_name);
end;
end;
end;

复制没问题,但却不会删除Dir_Src下的文件,为什么?
...全文
23 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
tonylk 2003-08-22
  • 打赏
  • 举报
回复
在意循环内删除文件,并自定一个超时的时间,当未达到超时时间,并且文件还存在的情况下,就每隔几百毫秒尝试删除文件,直到超时了,就给出一个出错信息。
rustle 2003-08-22
  • 打赏
  • 举报
回复
CopyFile是异步方式调用的

文件正在使用
IwantFlay 2003-08-21
  • 打赏
  • 举报
回复
同意楼上两位.
Hewin 2003-08-20
  • 打赏
  • 举报
回复
因為文件正在使用!(CopyFile在使用)!
你可用GetLastError得到DeleteFile的錯誤信息! 如果你在CopyFile與DeleteFile之間加入Sleep(10000)(足夠的時間讓CopyFile完成后)試試,
lxpbuaa 2003-08-20
  • 打赏
  • 举报
回复
可能是在搜索文件(SearchFile)完成后没有释放资源。比如用FindFirst和FindNext搜索完成后应该用FindClose释放资源。否则deletefile不能删除这些文件。

—————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
—————————————————————————————————

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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