关于不同方法删除包含大量小文件文件夹的时间测试报告
在文章开始之前,感谢夏墨@刚把爹!夏小墨 在测试过程中对我的理解和帮助,以及baka@baka⑨ 和夏墨的科普。
测试灵感来源:
这项测试因小狐狸@Joey 的问题而起。在闲聊群里他提了一个问题:在Windows系统下,一个文件数量超过一万的普通文件夹,以何种方式删除所需要的时间最短?且在问题后提出“回收站删除需要3分钟(左右)”的提示。以回答该问题为目的,设计本次测试。
测试目的:
通过本次测试,尝试找出比回收站删除包含大量小文件文件夹更短的方法。
测试样本:

共包含3146个文件,大小为106MB,占用空间112MB的文件夹一个,及复制生成的样本副本3个。
注:样本文件夹采用包含有大量小文件的文件夹,而不是数据容量较大(大于5G)的文件夹,是因为①电脑配置较低,创建大量数据的文件夹副本需要占用的时间过多;②数据容量超出回收站设定容量会直接删除而不进入回收站,违背测试的目的和初衷;由于以上两个原因,以包含有大量数据的文件夹作为测试样本的方案暂不做考虑,本次测试仅以包含有大量小文件的文件夹作为测试样本。
测试内容:
通过回收站删除、两种可执行文件bat、360文件粉碎机等四种不同的删除方式,对文件夹内包含的文件数量、文件夹大小、占用空间完全一致的四个文件夹进行删除,手动记录所需时间。
注:该测试的四种方法中,方法①由Joey提供,方法②、方法③来自百度经验,方法④由夏墨提出。
测试过程:
①将文件夹拖入放入回收站;
②将文件夹更名为foldername→运行代码为【del /f/s/q foldername > nul
rmdir /s/q foldername】的bat执行文件→文件被删除;
③创建代码为【DEL /F /A /Q \\?\%1
RD /S /Q \\?\%1】的bat执行文件→将文件夹拖入文件运行→等待文件删除。
④打开360粉碎机删除→将文件夹添加到360文件粉碎机→确定后等待文件夹删除。
测试结果:
测试数据总结:
从本次测试获得的数据来看,通过执行bat文件删除包含大量小文件的文件夹可以获得最快的速度,通过回收站进行删除的速度次之,360文件粉碎机需要的时间最长。
在测试中发现,将文件夹拖入回收站后,会出现统计文件数量、大小的进度条,统计完成后,文件夹移入回收站的时间小于1秒(以1秒计),仅占总花费时间的4.1%,统计文件夹的文件数量、大小占据极大部分的时间。结合测试样本的决定,故提出如下可能性:回收站在删除文件前需对文件(夹)的大小进行判定,如果数据容量超过回收站容量上限将直接删除,小于回收站容量上限才会被允许放入回收站。
经baka科普,方法②与方法③在原理上不存在根本性的差别,仅在使用条件上存在差别。且二者的测试时间仅相差1.77秒,在手动记录的误差范围内,可基本证实这个说法。(方法②13秒,方法③14秒77)
通过测试我们发现,360文件粉碎机所需要的时间长于另外三种方法,故可以认定360文件粉碎机的根本目的不在快速删除文件,而在于文件粉碎。
可作出结论:可执行文件bat删除包含有大量小文件的文件夹所用的时间最短,考虑到用户体验,更建议使用方法③的bat可执行文件。
谢谢阅读。
测试灵感来源:
这项测试因小狐狸@Joey 的问题而起。在闲聊群里他提了一个问题:在Windows系统下,一个文件数量超过一万的普通文件夹,以何种方式删除所需要的时间最短?且在问题后提出“回收站删除需要3分钟(左右)”的提示。以回答该问题为目的,设计本次测试。
测试目的:
通过本次测试,尝试找出比回收站删除包含大量小文件文件夹更短的方法。
测试样本:

共包含3146个文件,大小为106MB,占用空间112MB的文件夹一个,及复制生成的样本副本3个。
注:样本文件夹采用包含有大量小文件的文件夹,而不是数据容量较大(大于5G)的文件夹,是因为①电脑配置较低,创建大量数据的文件夹副本需要占用的时间过多;②数据容量超出回收站设定容量会直接删除而不进入回收站,违背测试的目的和初衷;由于以上两个原因,以包含有大量数据的文件夹作为测试样本的方案暂不做考虑,本次测试仅以包含有大量小文件的文件夹作为测试样本。
测试内容:
通过回收站删除、两种可执行文件bat、360文件粉碎机等四种不同的删除方式,对文件夹内包含的文件数量、文件夹大小、占用空间完全一致的四个文件夹进行删除,手动记录所需时间。
注:该测试的四种方法中,方法①由Joey提供,方法②、方法③来自百度经验,方法④由夏墨提出。
测试过程:
①将文件夹拖入放入回收站;
②将文件夹更名为foldername→运行代码为【del /f/s/q foldername > nul
rmdir /s/q foldername】的bat执行文件→文件被删除;
③创建代码为【DEL /F /A /Q \\?\%1
RD /S /Q \\?\%1】的bat执行文件→将文件夹拖入文件运行→等待文件删除。
④打开360粉碎机删除→将文件夹添加到360文件粉碎机→确定后等待文件夹删除。
测试结果:
- 回收站删除。用时24秒25,(包括1秒我最后没反应过来的时间)统计文件数量的时间占了大部分,用时22秒左右。
- 用时13秒。
- 用时14秒77。
- 用时>3分钟,已不具备可比性,故将时间定为>3分钟,没有统计完整时间。
测试数据总结:
从本次测试获得的数据来看,通过执行bat文件删除包含大量小文件的文件夹可以获得最快的速度,通过回收站进行删除的速度次之,360文件粉碎机需要的时间最长。
在测试中发现,将文件夹拖入回收站后,会出现统计文件数量、大小的进度条,统计完成后,文件夹移入回收站的时间小于1秒(以1秒计),仅占总花费时间的4.1%,统计文件夹的文件数量、大小占据极大部分的时间。结合测试样本的决定,故提出如下可能性:回收站在删除文件前需对文件(夹)的大小进行判定,如果数据容量超过回收站容量上限将直接删除,小于回收站容量上限才会被允许放入回收站。
经baka科普,方法②与方法③在原理上不存在根本性的差别,仅在使用条件上存在差别。且二者的测试时间仅相差1.77秒,在手动记录的误差范围内,可基本证实这个说法。(方法②13秒,方法③14秒77)
通过测试我们发现,360文件粉碎机所需要的时间长于另外三种方法,故可以认定360文件粉碎机的根本目的不在快速删除文件,而在于文件粉碎。
可作出结论:可执行文件bat删除包含有大量小文件的文件夹所用的时间最短,考虑到用户体验,更建议使用方法③的bat可执行文件。
谢谢阅读。