如何利用递归实现删除某一目录下所有文件???(50分)

  • 主题发起人 主题发起人 笑看乾坤
  • 开始时间 开始时间

笑看乾坤

Unregistered / Unconfirmed
GUEST, unregistred user!
有一文件夹中有一些文件,文件名和文件个数不确定,任何实现将这些文件删除呀!
 
procedure TForm1.btnCreateClick(Sender: TObject);
begin
CreateDirectory(PChar(ExtractFilePath(ParamStr(0))+'Test'),nil);

end;

procedure TForm1.btnDeleteClick(Sender: TObject);
var
T:TSHFileOpStruct;
P:String;
begin
P:=ExtractFilePath(ParamStr(0))+'Test';
with T do
begin
Wnd:=0;
wFunc:=FO_DELETE;
pFrom:=PChar(P);
pTo:=nil;
fFlags:=FOF_ALLOWUNDO+FOF_NOERRORUI;
hNameMappings:=nil;
lpszProgressTitle:='正在删除文件夹';
fAnyOperationsAborted:=False;
end;
SHFileOperation(T);
RemoveDirectory(PChar(ExtractFilePath(ParamStr(0))+'Test'));
end;

procedure TForm1.Button1Click(Sender: TObject);
var
APath: AnsiString;
lpFileOp: TSHFileOpStruct;
begin
APath:='g:/123';//指定目录
with lpFileOp do
begin
wnd:=self.handle;
wFunc:=FO_Delete;
pFrom:=PChar(APath);
pTo:=nil;
fFlags:=FOF_AllowUndo;
hNameMappings:=nil;
lpszProgressTitle:=nil;
fAnyOperationsAborted:=true;
end;
if SHFileOperation(lpFileOp)=0 then
ShowMessage('删除成功!')
else
ShowMessage('删除失败!');


end;

procedure TForm1.Button2Click(Sender: TObject);
begin
// DoRemoveDir('g:/123')
//ToRecycle(0, 'G:/123')
Deletedirectory('g:/123');
end;


function TForm1.Deletedirectory(apath: string): boolean;
var lpFileOp: TSHFileOpstruct;
begin
result := false;
if DirectoryExists(apath) then
begin
with lpFileOp do
begin
Wnd := Self.Handle;
wFunc := FO_DELETE;
pFrom := pchar(APath + #0#0);
pTo := nil;
fFlags := FOF_NOCONFIRMATION;
hNameMappings := nil;
lpszProgressTitle := nil;
fAnyOperationsAborted := false;
end;
if (SHFileOperation(lpFileOp) = 0) and (lpFileOp.fAnyOperationsAborted= false) then
if (not DirectoryExists(apath)) then
result := true;
end;
end;
 
何不一次删除文件
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部