用delphi如何一次删除某个目录下的所有文件?

小伍老师 2002-02-05 01:54:35
用shell或者不用shell的方法?
...全文
462 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
sandAhrow 2002-02-07
  • 打赏
  • 举报
回复
deletefolder?
dgzdx 2002-02-05
  • 打赏
  • 举报
回复
关注!
yuqiong 2002-02-05
  • 打赏
  • 举报
回复
var
F: Textfile;
begin
OpenDialog1.Title := 'Delete File';
if OpenDialog1.Execute then begin
AssignFile(F, OpenDialog1.FileName);
try
Reset(F);
if MessageDlg('Erase ' + OpenDialog1.FileName + '?',
mtConfirmation, [mbYes, mbNo], 0) = mrYes then
begin
CloseFile(F);
Erase(F);
end;
except
on EInOutError do

MessageDlg('File I/O error.', mtError, [mbOk], 0);
end;
end;
end;

如果要删除整个目录中的文件,需要搜索 所有的文件名称即可。
thedream 2002-02-05
  • 打赏
  • 举报
回复
//转贴
procedure TForm1.DeleteTree(s:string);
VAR searchRec:TSearchRec;
begin
if FindFirst(s+'\*.*', faAnyFile, SearchRec)=0 then
repeat
if (SearchRec.Name<>'.') and (SearchRec.Name<>'..') then
begin
if (SearchRec.Attr and faDirectory>0) then
begin
rec_stack[rec_pointer]:=SearchRec;
rec_pointer:=rec_pointer-1;
DeleteTree(s+'\'+SearchRec.Name);
rec_pointer:=rec_pointer+1;
SearchRec:=rec_stack[rec_pointer];
end
else
begin
try
FileSetAttr(s+'\'+SearchRec.Name,faArchive);
DeleteFile(s+'\'+SearchRec.Name);
except
Application.MessageBox(PChar('Delete File:'+s+'\'+SearchRec.Name+' Error!'),'Info',MB_OK);
Del_Flag:=False;
end;
end;
end;
until (FindNext(SearchRec)<>0);
FindClose(SearchRec);
if rec_pointer<30 then
begin
try
FileSetAttr(s,faArchive);
RemoveDir(s);
except
Application.MessageBox(PChar('Delete Directory:'+s+' Error!'),'Info',MB_OK);
Del_Flag:=False;
end;
end;
end;


//---------------------------------------------------------




procedure TForm1.Button1Click(Sender: TObject);
begin
Del_Flag:=True;
rec_pointer:=30;
DeleteTree('c:\temp');
if Del_Flag then Application.MessageBox(PChar('目录c:\temp的内容已成功清除!'),'信息',MB_OK);


end;
li_zhifu 2002-02-05
  • 打赏
  • 举报
回复
用FindFirst,FindNext,FindClose来遍历文件,用DeleteFile来删除。
不过做为一个程序员,解决问题是第一位的,所以可以用下述办法
winexec('Deltree.exe -y c:\test',sw_hide);
小伍老师 2002-02-05
  • 打赏
  • 举报
回复
Deletefiles能一次删除多个文件?
我怎么只能删除一个
CeleronII 2002-02-05
  • 打赏
  • 举报
回复
API函数
Delete Files ;如果不会用的话,去看看HELP吧

5,388

社区成员

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

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