Abdulsalam Elsharif Asked: 2021-02-08 07:59:50 +0800 CST2021-02-08 07:59:50 +0800 CST 2021-02-08 07:59:50 +0800 CST 我可以在一个 Windows 文件夹中放置多少个文件夹? 772 我有一个 10M 的文件夹。每个文件夹包含 13 个文件。 我想将所有这些文件夹放在一个主文件夹(根文件夹)中。 Windows Server 对此有什么限制吗? windows windows-explorer 3 个回答 Voted forest 2021-02-08T17:03:33+08:002021-02-08T17:03:33+08:00 这可能是X/Y 问题。也许您正在做的事情更适合数据库而不是文件系统。使用数据库,您可以轻松快速有效地存储和访问数百万条记录。公认的答案是正确的说 NTFS 理论上能够存储这么多记录,但它不会很快。基本上所有文件系统(例如 NTFS、exFAT、ext4、HFS...)都是如此。它们根本没有被设计成对于您正在尝试做的事情具有足够的可扩展性。 造成这种情况的主要原因之一是大多数操作系统的文件系统 API 一次只能返回整个目录条目列表。例如,没有办法只检索与典型文件系统中的特定模式匹配的目录。它必须全部检索它们,然后为您想要的名称解析(大量)输出。除了大小、创建和修改时间等名称之外,其他文件/目录属性也是如此。数据库并非如此。 Best Answer harrymc 2021-02-08T08:55:47+08:002021-02-08T08:55:47+08:00 就NTFS的理论容量而言,是没有问题的。 Microsoft 关于 NTFS 卷的最大大小的文章 指定每个卷的最大文件数为 4,294,967,295,这也应该是文件夹的最大值。但是,您需要一台速度极快且具有大量 RAM 的计算机才能在资源管理器中查看该文件夹。 根据我自己的经验,在几年前的一台好计算机上,查看一个包含数千个子文件夹的文件夹需要几十秒钟才能显示该文件夹。我不知道 1000 万个子文件夹会发生什么,但即使计算机可以处理它,你肯定也需要很大的耐心。最终。 我真的建议重新考虑您的文件夹架构。 phuclv 2021-02-08T19:09:59+08:002021-02-08T19:09:59+08:00 文件夹内的文件数量与操作系统无关。这是文件系统的一项功能,尽管您使用的系统可能反过来具有较低的限制。一些文件系统限制文件夹中的文件数量,而另一些文件系统仅限制卷中文件的总数,而有些则根本没有任何限制。请参阅文件系统的限制。请注意,基本上目录只是一个文件,其内容是其他文件的列表 如果您使用exFAT,每个文件夹的最大数量为2 796 202 个文件。在NTFS中,每个卷的限制是 2 32 -1 个文件。如果您使用FAT,那么限制取决于 FAT 版本 FAT12:4 068 用于 8 KiB 集群 FAT16:65 460 用于 32 KiB 集群 FAT32:268 173 300 用于 32 KiB 集群 Windows 还原生支持一些其他文件系统,如 ReFS,或者您可以为其他非原生文件系统安装驱动程序。他们可能反过来有不同的限制 但无论如何,在一个文件夹中有大量文件是一个非常糟糕的主意。列表和运行速度取决于文件系统如何存储其元数据,例如在 FAT 中它是一个线性列表,所以它非常慢。但是,即使使用一种有效的方式来列出 NTFS 中的 B+树之类的文件,它仍然很慢。一般来说,我避免在一个文件夹中有超过 2000 个文件 在您的情况下,更好的解决方案应该是某种数据库。但是,如果您确实必须将文件直接存储在驱动器中,那么您需要将文件平均分配到多个较小的文件夹中。常见的方法是对文件名或内容进行哈希处理,然后拆分为具有该名称的一部分的文件夹。例如,如果哈希是(32 位) ,0xabcdef12则将文件存储在或(每个路径分量分别代表原始值的 8/8/8/8、8/12/12 和 10/10/12 位)。这样,任何文件夹都不应该有太多或太少的文件。看ab/cd/ef/12ab/cde/f122af/0de/f12 如何在磁盘上传播/散列多个文件而不在每个目录存储超过 1000 个文件? 在文件系统中存储一百万张图像 访问目录哈希中的数千个文件 这种方法在 git 或 docker 中常用 也可以看看 如果数百万个文件存储在一个 NTFS 文件夹中会很糟糕吗? 在同一文件夹 (NTFS) 中存储 600,000 多张图像的性能影响 如果单个目录 (NTFS) 中有大量文件,文件系统性能会降低吗? 有 100 万个文件夹还是一个文件夹中有 100 万个文件? 您可以在 Windows 文件夹中放置多少文件而不会显着降低性能? NTFS 性能和大量文件和目录 你如何处理大量的小文件? 数以百万计的小图形文件以及如何克服 XP 上文件系统访问缓慢的问题 一个目录中有多少文件太多(在 Windows 和 Linux 上)?(复制) 文件夹中有数百万个(小)文本文件 与在 NTFS 上存储数百万个文件相关的性能
这可能是X/Y 问题。也许您正在做的事情更适合数据库而不是文件系统。使用数据库,您可以轻松快速有效地存储和访问数百万条记录。公认的答案是正确的说 NTFS 理论上能够存储这么多记录,但它不会很快。基本上所有文件系统(例如 NTFS、exFAT、ext4、HFS...)都是如此。它们根本没有被设计成对于您正在尝试做的事情具有足够的可扩展性。
造成这种情况的主要原因之一是大多数操作系统的文件系统 API 一次只能返回整个目录条目列表。例如,没有办法只检索与典型文件系统中的特定模式匹配的目录。它必须全部检索它们,然后为您想要的名称解析(大量)输出。除了大小、创建和修改时间等名称之外,其他文件/目录属性也是如此。数据库并非如此。
就NTFS的理论容量而言,是没有问题的。
Microsoft 关于 NTFS 卷的最大大小的文章 指定每个卷的最大文件数为 4,294,967,295,这也应该是文件夹的最大值。但是,您需要一台速度极快且具有大量 RAM 的计算机才能在资源管理器中查看该文件夹。
根据我自己的经验,在几年前的一台好计算机上,查看一个包含数千个子文件夹的文件夹需要几十秒钟才能显示该文件夹。我不知道 1000 万个子文件夹会发生什么,但即使计算机可以处理它,你肯定也需要很大的耐心。最终。
我真的建议重新考虑您的文件夹架构。
文件夹内的文件数量与操作系统无关。这是文件系统的一项功能,尽管您使用的系统可能反过来具有较低的限制。一些文件系统限制文件夹中的文件数量,而另一些文件系统仅限制卷中文件的总数,而有些则根本没有任何限制。请参阅文件系统的限制。请注意,基本上目录只是一个文件,其内容是其他文件的列表
如果您使用exFAT,每个文件夹的最大数量为2 796 202 个文件。在NTFS中,每个卷的限制是 2 32 -1 个文件。如果您使用FAT,那么限制取决于 FAT 版本
Windows 还原生支持一些其他文件系统,如 ReFS,或者您可以为其他非原生文件系统安装驱动程序。他们可能反过来有不同的限制
但无论如何,在一个文件夹中有大量文件是一个非常糟糕的主意。列表和运行速度取决于文件系统如何存储其元数据,例如在 FAT 中它是一个线性列表,所以它非常慢。但是,即使使用一种有效的方式来列出 NTFS 中的 B+树之类的文件,它仍然很慢。一般来说,我避免在一个文件夹中有超过 2000 个文件
在您的情况下,更好的解决方案应该是某种数据库。但是,如果您确实必须将文件直接存储在驱动器中,那么您需要将文件平均分配到多个较小的文件夹中。常见的方法是对文件名或内容进行哈希处理,然后拆分为具有该名称的一部分的文件夹。例如,如果哈希是(32 位) ,
0xabcdef12
则将文件存储在或(每个路径分量分别代表原始值的 8/8/8/8、8/12/12 和 10/10/12 位)。这样,任何文件夹都不应该有太多或太少的文件。看ab/cd/ef/12
ab/cde/f12
2af/0de/f12
这种方法在 git 或 docker 中常用
也可以看看