我的 Windows 7 搜索在一台计算机上很慢,而在另一台计算机上很快。我发现一台计算机有 90,000 个索引文件,而另一台有 150 万个文件。
所以我想按文件数量找到最大的文件夹,因为有些文件夹肯定是无关紧要的,并将它们排除在外。
我有工具可以按数据大小查找最大的文件夹,但不能按其中的文件数查找。有任何想法吗?
如果您使用的是 Windows XP,您可以使用Folder Size shell-extension,它为您提供了几列,您可以将这些列添加到资源管理器中以显示文件夹的大小,以及其中包含的文件/文件夹/两者的数量,因此允许您直接在资源管理器中查看和排序它们。
不幸的是,Vista 和更高版本已经放弃了 Folder Size 和类似程序使用的 API 功能,因此它们不再起作用。
相反,您必须使用非外壳扩展。幸运的是,有几个程序可以很好地可视化文件系统上的空间使用情况。
它们中的大多数有几种不同的模式,包括 text-list/tree (如在 Explorer 中)、pie-graph和treemap,其中文件和子目录由正方形或矩形表示。除了大小之外,还应该有一个选项可以显示文件/文件夹的数量,通常在文本列表/树模式下。有时,要获取文件/文件夹的数量,您需要选择文件夹并查看其属性(这不太方便,但仍然比在资源管理器中手动更容易)。
以下是一些最受欢迎的软件(一些是免费软件,另一些是共享软件):
按文件数量(包括子文件夹)获取文件夹排序列表的一种快速方法是:
$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按值和升序对哈希表进行排序的命令| 归档时间: |
|
| 查看次数: |
16200 次 |
| 最近记录: |