我的 Windows 7 搜索在一台电脑上非常慢,而在另一台电脑上却很快。我发现一台电脑索引了 90,000 个文件,而另一台电脑索引了 150 万个文件。
因此,我想按文件数量找到最大的文件夹,因为有些文件夹肯定是不相关的,并将其排除。
我有工具可以根据数据大小查找最大的文件夹,但不能根据文件夹内的文件数量查找。有什么想法吗?
答案1
如果你使用的是 Windows XP,则可以使用文件夹大小shell-extension 为您提供了一些可添加到 Explorer 的列,以显示文件夹的大小,以及其中包含的文件/文件夹/两者的数量,从而允许您在 Explorer 中查看和排序它们。
不幸的是,Vista 及更高版本已经放弃了文件夹大小和类似程序使用的 API 功能,因此它们不再起作用。
相反,您必须使用非 shell 扩展。幸运的是,有几种程序可以很好地可视化文件系统上的空间使用情况。
它们大多数都有几种不同的模式,包括文本列表/树(如在资源管理器中),饼状图, 和树形图,其中文件和子目录用正方形或长方形表示。除了大小之外,还应该有一个选项可以显示文件/文件夹的数量,通常以文本列表/树模式显示。有时,要获取文件/文件夹的数量,您需要选择文件夹并查看其属性(这不太方便,但仍然比在 Explorer 中手动操作更容易)。
以下是一些最受欢迎的软件(一些是免费软件,其他是共享软件):
答案2
另外,TreeSize 免费(在此镜头中,目录名为 0-F。)
答案3
按文件数量(包括子文件夹)获取排序的文件夹列表的一种快速方法是:
PowerShell 3+
$a=@{}
Get-ChildItem -LiteralPath 'D:\' -Recurse -Directory -ErrorAction Ignore | Foreach {
$a[$_.Fullname] = (Get-ChildItem -LiteralPath $_.Fullname -Recurse -File -ErrorAction Ignore).Count
}
$a.GetEnumerator() | Sort Value -Descending | Format-List
示例输出
对于那些对其工作原理感兴趣的人
Get-ChildItem -LiteralPath 'D:\' -Recurse -Directory
循环遍历给定目录的所有子文件夹。根据需要更改路径。(-LiteralPath
避免[
和]
括号引起的错误。)- 在每个子文件夹中用于
(Get-ChildItem -LiteralPath $_.Fullname -Recurse -File).Count
计算文件数(包括子文件夹中的文件)。文件夹本身不计算在内。只有文件才计算在内。 $a[$_.Fullname] = myValue
对于每个子文件夹,添加一个以当前目录为名称的新哈希表条目。作为值添加我们之前提到的文件数- 完成所有工作后,使用
$a.GetEnumerator()
将哈希表分解为多个项目,并将它们传递给Sort-Object
按值对哈希表进行升序排序的命令
答案4
从尘埃开始4e1180e5(2020-08-30),您现在可以这样做:
-f, --filecount
Directory 'size' is number of child files/dirs not disk size
示例输出:
PS C:\Users\Steven\AppData\Local> dust -f
577 ┌── Default
628 ┌─┴ User Data
629 ┌─┴ Edge
1,154 ┌─┴ Microsoft
1,901 ├── Packages
407 │ ┌── 41ad6w4a.default-release-4
493 │ │ ┌── entries
497 │ │ ┌─┴ cache2
573 │ ├─┴ 7eccqsn1.default-release-1-1597857941226
3,952 │ ┌─┴ Profiles
3,953 │ ┌─┴ Firefox
3,954 ├─┴ Mozilla
3,096 │ ┌── entries
3,100 │ ┌─┴ cache2
3,269 │ ┌─┴ 56uzf1ra.Sunday
10,341 │ │ ┌── entries
10,344 │ │ ┌─┴ cache2
10,428 │ ├─┴ 7nx7hnxa.68-edition-default
13,698 │ ┌─┴ Profiles
13,699 ├─┴ Waterfox
21,181 ┌─┴ .
由于它刚刚发布,我必须使用以下命令自己构建它:
$env:RUSTFLAGS = '-C link-arg=-s'
cargo build --release