在Windows中删除大文件夹的最快方法是什么?


224

我想删除一个包含数千个文件和文件夹的文件夹。如果我使用Windows资源管理器删除文件夹,则可能需要10到15分钟(并非总是,但是经常)。Windows中是否有更快的删除文件夹的方法?

其他详情:

  • 我不在乎回收站。
  • 这是一个NTFS驱动器。


1
也许cygwin中的rm -rf更快,也许linux live cd rm -rf仍然更快。
barlop

使用cygwin ls DIRECTORY> list_files并在list_files上进行迭代,并使用rm -rf(处理1TB的大文件池并运行良好)
gnuyoga 2013年

伙计们,我不确定其他人是否有相同的经历...但是,如果我删除一个大文件夹,然后在删除文件夹时取消它,则该文件夹消失了且回收站为空。不知道为什么这样做,但对我有用。
ladieu 2014年

Answers:


333

使用Windows命令提示符:

rmdir /s /q folder

22
顺便说一句,您也可以使用rd / q / s <foldername>,但是,虽然它比Windows资源管理器中的图形表示更快,但仍需要花费很长时间 -MS使用“ Schlemeil the Painter”算法(joelonsoftware。 com / articles / fog0000000319.html)在完成目录或del的任何时间
沃伦

37
如果安装了Cygwin,则rm -rf文件夹的运行速度非常快。
锡南·努尔

45
我曾经用过,但是我发现del + rmdir的组合比普通rmdir快三倍。见我的回答:stackoverflow.com/questions/186737/...
雨果

2
思南的建议是最快的。安装cygwin.com,然后从cygwin命令提示符下使用rm -rfv folderName。
Lonnie Best,

1
在Cygwin上执行+1,该操作可以取消结构上的链接,但比Windows工具的执行速度要快一点,但并不安全。
Tracker1

975

最糟糕的方法是发送到回收站:您仍然需要删除它们。下一个最糟糕的情况是Windows资源管理器中的shift + delete:在开始删除任何内容之前浪费时间检查内容。

次佳的方法是rmdir /s/q foldername从命令行使用。del /f/s/q foldername也很好,但是它留下了目录结构。

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

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

根据使用Windows XP加密磁盘进行的时间测试,这大约比单个rmdir快三倍,删除〜30GB / 1,000,000个文件/ 15,000个文件夹:rmdir需花费约2.5小时,del+rmdir需花费约53分钟。超级用户的更多信息。

对我来说这是一项常规任务,因此我通常将需要删除的内容移动到C:\ stufftodelete,并将这些del+rmdir命令放在deletestuff.bat批处理文件中。该程序计划在晚上运行,但是有时我需要在白天运行,因此越快越好。

del可在此处找到有关命令的Technet文档。上面使用的参数的附加信息:

  • /f -强制(即删除文件,即使它们是只读的)
  • /s-递归/包含子文件夹(SS64中的此定义,因为technet只是声明“指定文件”,这没有帮助)。
  • /q -安静(即不提示用户进行确认)

有关rmdir 此处的文档。参数为:

  • /s -递归(即与del的/ s参数相同)
  • /q -安静(即与del的/ q参数相同)

1
我今天尝试了此操作(承认是在较小的数据集上),结果却相反:仅使用rmdir(3:17)比使用del和rmdir(2:15)快30%。
哈里·约翰斯顿

6
我需要“以管理员身份运行”才能使其正常运行,具体取决于驱动器。
2012年

1
如何使用Cygwin。我知道这是Windows之上的一层,但是linux世界可以帮助我们更好地服务吗?
萨拉特

1
这对我来说很棒。在Windows 7上,它删除了大约16 GB的文件,几秒钟内就删除了几十万个文件。在我放弃搜索之前,该操作系统挂了一段时间。
Engineero

4
一个绝佳且优雅的解决方案,我可以建议我们使用命令外壳&符来简化命令:连续del /f/s/q foldername > nul & rmdir /s/q foldername 运行命令:或仅在第一个命令成功时才连续 运行命令。 del /f/s/q foldername > nul && rmdir /s/q foldername
GBGOLC

6

使用fastcopy(免费工具)。它具有一个删除选项,该选项比Windows删除文件的方式要快得多。


1
我尝试了FastCopy。不知道它是否比Windows快,我每秒只能删除92个文件。考虑到我放弃了计算超过250K的文件数量,这将使我永远无法使用。每个文件只有20个字节。该死的PHP会话文件。
Chrispix

1
尝试使用开源免费工具RapidDeletePro:github.com/mhisoft/RapidDeletePro
Tony,

3

根据建议使用命令提示符。我弄清楚了为什么浏览器前一阵子这么慢,它可以让您估算删除文件/文件夹所需的时间。为此,它必须扫描项目数和大小。这需要花费很多时间,因此对于大型文件夹而言,这是荒谬的等待。

另外,如果文件有特定问题,资源管理器也会停止,


3

并且要删除很多文件夹,您还可以创建带有批处理命令spdenne的批处理文件。

1)制作一个具有以下内容的文本文件,用您的文件夹名称替换引号中的文件夹名称:

rmdir /s /q "My Apps"  
rmdir /s /q "My Documents"  
rmdir /s /q "My Pictures"  
rmdir /s /q "My Work Files"

2)使用.bat扩展名保存批处理文件(例如deletefiles.bat)
。3)打开命令提示符(开始>运行> Cmd)并执行批处理文件。您可以从命令提示符处执行以下操作(用X代替驱动器号):

X:  
deletefiles.bat

2
是的,我有一个类似的批处理文件,但是找到最快的del + rmdir组合:stackoverflow.com/questions/186737/…–
Hugo

-1

尝试Shift+ Delete。在2分钟内为我完成了24.000个文件。


13
参见上文-避免了回收站,但仍比命令行慢。
andig

1
此方法将直接删除文件,而不是将其移动到回收站,但是资源管理器仍将尝试对所有文件进行计数以获得估算值,这需要大文件夹(> 100k文件)的使用
期限

平均文件大小是多少?
your_boy_gorja

@your_boy_gorja问题不是平均文件大小,而是文件夹中的文件数量。当你通过资源管理器中删除,浏览器需要读取的所有文件,以获得规模和尝试做一个估计
维尼修斯·蒙特罗

@uceumern是的,它的计数工作非常荒谬,因为它包含很多文件(〜40GB,1m +文件)
Brian Leishman
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.