如何在 Windows 中找到最大的文件夹(按文件数)

end*_*ith 7 windows-7

我的 Windows 7 搜索在一台计算机上很慢,而在另一台计算机上很快。我发现一台计算机有 90,000 个索引文件,而另一台有 150 万个文件。

所以我想按文件数量找到最大的文件夹,因为有些文件夹肯定是无关紧要的,并将它们排除在外。

我有工具可以按数据大小查找最大的文件夹,但不能按其中的文件数查找。有任何想法吗?

Syn*_*ech 7

如果您使用的是 Windows XP,您可以使用Folder Size shell-extension,它为您提供了几列,您可以将这些列添加到资源管理器中以显示文件夹的大小,以及其中包含的文件/文件夹/两者的数量,因此允许您直接在资源管理器中查看和排序它们。

不幸的是,Vista 和更高版本已经放弃了 Folder Size 和类似程序使用的 API 功能,因此它们不再起作用。

相反,您必须使用非外壳扩展。幸运的是,有几个程序可以很好地可视化文件系统上的空间使用情况。

它们中的大多数有几种不同的模式,包括 text-list/tree (如在 Explorer 中)、pie-graphtreemap,其中文件和子目录由正方形或矩形表示。除了大小之外,还应该有一个选项可以显示文件/文件夹的数量,通常在文本列表/树模式下。有时,要获取文件/文件夹的数量,您需要选择文件夹并查看其属性(这不太方便,但仍然比在资源管理器中手动更容易)。

以下是一些最受欢迎的软件(一些是免费软件,另一些是共享软件):


小智 6

另一个,TreeSize Free。(在这个镜头中,目录被命名为 0-F。)

在此处输入图片说明


nix*_*xda 6

按文件数量(包括子文件夹)获取文件夹排序列表的一种快速方法是:

电源外壳 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
Run Code Online (Sandbox Code Playgroud)

输出示例

在此输入图像描述

对于那些对其工作原理感兴趣的人

  • Get-ChildItem -LiteralPath 'D:\' -Recurse -Directory循环遍历给定目录的所有子文件夹。根据您的需要更改路径。(-LiteralPath避免来自[]括号的错误。
  • 在每个子文件夹中用于(Get-ChildItem -LiteralPath $_.Fullname -Recurse -File).Count计算文件数量,包括子文件夹中的文件。文件夹本身不算数。只有文件可以。
  • 对于每个子文件夹,添加一个$a[$_.Fullname] = myValue以当前目录作为名称的新哈希表条目。作为价值添加我们之前提到的文件计数
  • 完成所有工作后,使用$a.GetEnumerator()将哈希表分解回多个项目并将它们通过管道传输到Sort-Object按值和升序对哈希表进行排序的命令