65.9K
CodeProject 正在变化。 阅读更多。
Home

清理编译器临时文件的实用程序

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.92/5 (41投票s)

2000年3月1日

viewsIcon

410474

downloadIcon

3639

一个 shell 扩展,用于删除编译器临时文件和中间文件。

 [DirClean menu items - 9K]

最近在工作中,我和一位同事讨论我们希望拥有的一些实用小工具。他提到了一个 shell 扩展的想法,可以从一个目录中删除所有中间编译器文件(例如 *.obj),并递归地处理子目录(当然)。听起来很不错,而且由于他正在编写另一个很酷的程序,我决定开始着手这个清理工具,看看我能做些什么。

我开发了这个小程序,DirClean。它是一个 shell 扩展,出现在目录的上下文菜单中,并有一个“清理临时文件”命令,可以从选定的目录及其子目录中删除中间编译器文件。默认情况下,文件会被放入回收站,但您可以配置 DirClean 直接删除文件。DirClean 使用 SHFileOperation 函数来删除文件,因此如果有很多文件要删除,您将看到熟悉的飞行纸张进度对话框。

DirClean 具有 ANSI 和 Unicode 版本。它使用 VC 6 SP 3 编写,并在 Win 98 和 Win 2000 上进行了测试。

“DirClean 选项”菜单项会弹出 DirClean 选项对话框

 [DirClean options - 9K]

这里的设置应该不言而喻。我不对您输入的通配符进行任何检查,因此您可能不想输入 "*.*";)设置保存在 HKEY_CURRENT_USER 中,因此每个用户都有自己的设置。

请注意,您可以通过在单击“清理临时文件”时按住 Shift 键来覆盖“将文件发送到回收站”设置。按住 Shift 键会在您将选项设置为将文件发送到回收站时立即删除文件,反之亦然。

重要提示,适用于 VS.NET 用户

在基于 NT 的操作系统上,shell 处理超过 3 个字符的扩展名的方式会导致 C# 项目出现问题。shell 的默认行为使通配符 *.res.RESX 文件匹配(它只比较前三个字符),删除 .RESX 文件会删除一些资源信息。

因此,为了避免删除这些文件,您可以从要删除的文件列表中删除 *.res,或者转到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem,并将 DWORD 值 Win95TruncatedExtensions 设置为 0,然后重新启动计算机。有关此功能的更多信息,请参阅 KB 文章 Q164351

历史

2001年10月28日 - 更新了默认的通配符列表。
2002年12月25日 - 添加了关于 Win95TruncatedExtensions 注册表项的说明。

© . All rights reserved.