怎样删除一个目录下的所有内容?

liumhao 2002-05-14 04:10:12
怎样删除一个目录下的所有内容(包括文件夹和文件)?给出完整答案。
...全文
138 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangking 2002-05-15
  • 打赏
  • 举报
回复
//uses SHELLAPI;
function MyDelTree(SourceName:String): Boolean;
var
F:TShFileOpStruct;
begin
F.wnd:=0;
F.wFunc:=FO_DELETE;
F.pFrom:=PChar(SourceName+#0#0);
F.pTo:=PChar(''+#0#0);
F.fFlags:=FOF_SILENT or FOF_NOCONFIRMATION;
result:= ShFileOperation(F)=0;
end;
delphi0302 2002-05-14
  • 打赏
  • 举报
回复
uses shellapi;

{$R *.DFM}



procedure TForm1.Button1Click(Sender: TObject);

Var

T:TSHFileOpStruct;

P:String;

begin

P:='d:\address';//这里改成你要删除的任意目录名

With T do

Begin

Wnd:=0;

wFunc:=FO_DELETE;

pFrom:=Pchar(P);

pTo:=nil;

fFlags:=FOF_ALLOWUNDO+FOF_NOCONFIRMATION+FOF_NOERRORUI;//标志表明允许恢复,无须确认并不显示出错信息

hNameMappings:=nil;

lpszProgressTitle:='正在删除文件夹';

fAnyOperationsAborted:=False;

End;

SHFileOperation(T);

end;
lizhenjia 2002-05-14
  • 打赏
  • 举报
回复
学习
888789 2002-05-14
  • 打赏
  • 举报
回复
下面是删除一个文件夹下所有文件的方法,要删除文件夹中的文件夹时,你可以将程序改一下。
如果FindFirst时是faDirectory则再调用方法自身


AnsiString SysPath ;//要删除的路径
TSearchRec sr;
if (FindFirst(SysPath+"\\*.*",faAnyFile,sr) == 0)
{
do
{
DeleteFile(SysPath+"\\"+sr.Name) ;
}
while(FindNext(sr) == 0);
FindClose(sr);
}
if(!RemoveDir(SysPath)) //刚才这里写错了
Application->MessageBox("删除文件家失败,文件已删除","错误",MB_OK);
li_zhifu 2002-05-14
  • 打赏
  • 举报
回复
1用FindFirst、FindNext、FindClose来查找*.*,发现是faDirectory则再调用方法自身;否则DeleteFile;
2作弊方法:直接用WinExec('deltree.exe -y c:\test\*.*',sw_hide);
bianlx 2002-05-14
  • 打赏
  • 举报
回复
procedure TForm1.deleteClick(Sender: TObject);
//把d:\sybase目录下所有文件发送到回收站
var
sourcefile:STRING;
lpfileop:TSHFILEOPSTRUCT;
begin
sourcefile:= 'd:\sybase\*.*'+#0#0;
fillchar(lpfileop,sizeof(lpfileop),0);
with lpfileop do
begin
wnd:=form1.handle;
wFunc:=FO_DELETE;
pFrom:=pchar(sourcefile);
fflags:= FOF_ALLOWUNDO;
end;
if SHFileoperation(lpfileop)<>NOERROR then
if lpfileop. FAnyOperationsAborted then
showmessage('删除文件被终止')
else
showmessage('删除文件出错');
end;
Billy_Chen28 2002-05-14
  • 打赏
  • 举报
回复
删除目录:

function DelDirectory(const Source:string): boolean;
var
fo: TSHFILEOPSTRUCT;
begin
FillChar(fo, SizeOf(fo), 0);
with fo do
begin
Wnd := 0;
wFunc := FO_DELETE;
pFrom := PChar(source+#0);
pTo := #0#0;
fFlags := FOF_NOCONFIRMATION+FOF_SILENT;
end;
Result := (SHFileOperation(fo) = 0);
end;

5,939

社区成员

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

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