Delphi,删除包含内容的文件夹
|
当我在文件夹中有子文件夹时-此代码不会删除文件夹...是否有任何错误?
procedure TForm.Remove(Dir: String);
var
Result: TSearchRec; Found: Boolean;
begin
Found := False;
if FindFirst(Dir + \'\\*\', faAnyFile, Result) = 0 then
while not Found do begin
if (Result.Attr and faDirectory = faDirectory) AND (Result.Name <> \'.\') AND (Result.Name <> \'..\') then Remove(Dir + \'\\\' + Result.Name)
else if (Result.Attr and faAnyFile <> faDirectory) then DeleteFile(Dir + \'\\\' + Result.Name);
Found := FindNext(Result) <> 0;
end;
FindClose(Result); RemoveDir(Dir);
end;
没有找到相关结果
已邀请:
5 个回复
链眷克袒姜
)
[如果你这样做
相反,您会看到一个不错的确认对话框。如果你这样做
您没有得到确认对话框,但是如果操作很长时间,则会得到进度条。最后,如果添加“ 5”标志,则将目录移至“废物箱”,而不是将其永久删除。
当然,您可以根据需要组合标志:
将不会显示任何确认信息(但会显示一个进度对话框,因为您未指定
),并且该目录将被移至废纸and并且不会被永久删除。
长拳
。 在ѭ11中发现了
,这是RTL的最新添加。
标志传递给
参数,这意味着在删除目录之前会显示目录的内容,这是删除目录的重要部分。 在评论中,您告诉我们您使用的是Delphi 7,因此无法使用。 您的代码看起来大部分都很好。但是,您的意思不是:
我想你的意思是:
我可能会这样写:
抹持奠糙驰
最后一个参数告诉文件是否应该进入回收站,这是一个不错的选择。
蕾跨立锌煤
弛保矮瘦敖
DSiWin32是一个开放源代码项目,与“按需使用”许可证相关。