windows – Delphi,删除带内容的文件夹
发布时间:2020-12-13 20:36:08 所属栏目:Windows 来源:网络整理
导读:当我在文件夹中有子文件夹时 – 此代码不是删除文件夹…是否有任何错误? procedure TForm.Remove(Dir: String);var Result: TSearchRec; Found: Boolean;begin Found := False; if FindFirst(Dir + '*',faAnyFile,Result) = 0 then while not Found do beg
当我在文件夹中有子文件夹时 – 此代码不是删除文件夹…是否有任何错误?
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;
如果我是你,我只是告诉操作系统删除包含其所有内容的文件夹.通过编写(使用ShellAPI)
var ShOp: TSHFileOpStruct; begin ShOp.Wnd := Self.Handle; ShOp.wFunc := FO_DELETE; ShOp.pFrom := PChar('C:UsersAndreas RejbrandDesktopTest'#0); ShOp.pTo := nil; ShOp.fFlags := FOF_NO_UI; SHFileOperation(ShOp); [如果你这样做 ShOp.fFlags := 0; 相反,你得到一个很好的确认对话框.如果你这样做 ShOp.fFlags := FOF_NOCONFIRMATION; 你没有得到确认对话,但如果操作很长,你会得到一个进度条.最后,如果添加FOF_ALLOWUNDO标志,则将目录移动到Waste Bin而不是永久删除它. ShOp.fFlags := FOF_ALLOWUNDO; 当然,您可以根据需要组合标志: ShOp.fFlags := FOF_NOCONFIRMATION or FOF_ALLOWUNDO; 将不会显示任何确认(但由于您未指定FOF_NO_UI而显示进度对话框),该目录将被移动到垃圾箱而不会被永久删除. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- xaml – 如何在metro应用程序中设置页面背景
- windows-server-2008 – 强化Windows Server 200
- windows-server-2012 – VSS不会截断Server 2012
- installer – 如何在具有提升权限的WiX中创建的M
- windows – 如何防止MsDepSvc.exe启动?
- windows – 如何获取窗口原始大小和位置(wsNorma
- windows – 如何计算CPU使用率?
- Windows XP SP3上的Tbutton令人讨厌的Png(XP模式
- 在Windows和活动目录上使用什么git服务器解决方案
- Windows – Subversion:如何递归删除所有的.svn
热点阅读