如何高效地删除单个目录中超过 2,000,000 个文件?

如何高效地删除单个目录中超过 2,000,000 个文件?

我的“临时 Internet 文件”中有超过 2,000,000 个(没错,超过 200 万个)文件。

此问题是由运行脚本的计划任务导致的。安装 Visual Studio 后,每次运行时都会生成大量“Assembly Binder Log Entry”.HTM 文件。

它每隔 15 分钟就会这样8个月。因此现在里面有超过 2,000,000 个和 8 GB 大小的文件(难怪 WinDirStat 和 Everything 都崩溃了!)。


如何删除一个文件夹而不遍历其所有 2,000,000 个内容?

我尝试在资源管理器中打开父文件夹并直接按下Del键。然后 Windows 继续尝试将 2,000,000 个文件发送到回收站(没有成功)。它从未通过“发现项目”阶段。

我接下来使用了 PowerShell ( Remove-Item 'Content.IE5'),但它试图递归遍历每个文件并单独删除它们。虽然这似乎最终会起作用,但我觉得一定有更好的方法。

如果您能告诉我 Assembly Binder Log Entry 文件到底是什么的话,我将获得加分...

答案1

根据 StackOverflow 上的一个类似问题,您可以做几件事。引用评分最高的答案(不是被接受的答案),完成此类任务的最佳方法是:

我发现最好的方法是使用两行批处理文件,第一遍删除文件并输出到 nul,以避免为每个单个文件写入屏幕的开销。第二遍清理剩余的目录结构:

> del /f/s/q foldername > nul 
> rmdir /s/q foldername

显然,您需要调整这个答案以适合您的特定目的,因为您要删除一系列文件而不是文件夹。

该用户建议(我同意)完成此任务最糟糕的方法是全选,Del其次最糟糕的方法是全选Shift+Del

恐怕我不知道日志条目文件是什么。

来源 -堆栈溢出

答案2

尝试这个:

开始 > 运行 > cmd > cd 到所需目录

进入所需目录或父目录后,输入 del (例如)C:\Users\username\Desktop*desiredfile.ext

这将删除文件而无需确认。

答案3

关闭 8+3 文件名,从命令行删除,然后重新打开 8+3。一旦超过前几万个文件,跟踪这组额外的文件名会增加开销。

相关内容