关于文件删除

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下的文件,为什么?
...全文
3 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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不能删除这些文件。

—————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
—————————————————————————————————
回复
发帖
语言基础/算法/系统设计
创建于2007-08-02

1.6w+

社区成员

Delphi 语言基础/算法/系统设计
申请成为版主
帖子事件
创建了帖子
2003-08-20 01:47
社区公告
暂无公告