Abd*_*rif 24 windows windows-explorer filesystems windows-server file-organization
我有一个 10M 的文件夹。每个文件夹包含 13 个文件。
我想将所有这些文件夹放在一个主文件夹(根)中。
Windows Server 对此有任何限制吗?
for*_*est 47
这可能是X/Y 问题。也许您正在做的事情更适合数据库而不是文件系统。使用数据库,您可以轻松快速高效地存储和访问数百万条记录。接受的答案是正确的,说 NTFS 理论上能够存储这么多记录,但速度不会很快。这基本上适用于所有文件系统(例如 NTFS、exFAT、ext4、HFS...)。它们根本就没有被设计为对您正在尝试做的事情具有足够的可扩展性。
造成这种情况的主要原因之一是大多数操作系统的文件系统 API 只能一次返回整个目录条目列表。例如,无法仅检索与典型文件系统中的特定模式匹配的目录。它必须全部检索它们,然后为您想要的名称解析(大量)输出。除了大小、创建和修改时间等名称之外,其他文件/目录属性也是如此。数据库不是这种情况。
har*_*ymc 43
就NTFS的理论容量而言,没有问题。
Microsoft 关于NTFS 卷上最大大小的文章 指定每个卷的最大文件数为 4,294,967,295,这也应该是文件夹的最大值。但是,您需要一台速度非常快且具有大量 RAM 的计算机才能在资源管理器中查看该文件夹。
根据我自己的经验,在几年前的一台好电脑上,查看一个包含数千个子文件夹的文件夹需要几十秒钟才能显示该文件夹。我不知道 1000 万个子文件夹会发生什么,但是即使计算机可以处理它,您肯定也需要很大的耐心。最终。
我真的建议重新考虑您的文件夹架构。
phu*_*clv 27
文件夹内的文件数与操作系统无关。这是文件系统的一个特性,尽管您使用的系统可能具有较低的限制。一些文件系统限制文件夹中的文件数,而另一些文件系统仅限制卷中的文件总数,而有些则根本没有任何限制。请参阅文件系统的限制。请注意,基本上目录只是一个文件,其内容是其他文件的列表
如果您使用exFAT,则每个文件夹的最大数量为2 796 202 个文件。在NTFS 中,每个卷的限制是 2 32 -1 个文件。如果您使用FAT,则限制取决于 FAT 版本
Windows 还原生支持一些其他文件系统,如 ReFS,或者您可以为其他非原生文件系统安装驱动程序。他们又可能有不同的限制
但无论如何,在一个文件夹中存放大量文件都是一个非常糟糕的主意。列表和运行速度取决于文件系统如何存储其元数据,例如在 FAT 中它是一个线性列表,所以它非常慢。但是即使使用一种有效的方法来列出 NTFS 中的 B+树等文件,它仍然很慢。一般来说,我避免在一个文件夹中有超过 2000 个文件
在您的情况下更好的解决方案应该是某种数据库。但是,如果您真的必须将文件直接存储在驱动器中,那么您需要将文件均匀分布到多个较小的文件夹中。常见的方法是对文件名或内容进行散列,然后拆分为具有该名称一部分的文件夹。例如,如果散列是0xabcdef12(32 位),则将文件存储在ab/cd/ef/12,ab/cde/f12或2af/0de/f12(每个路径组件分别代表原始值的 8/8/8/8、8/12/12 和 10/10/12 位)。这样,任何文件夹都不应该有太多或太少的文件。看
这种方法在git或者docker中常用
| 归档时间: |
|
| 查看次数: |
9363 次 |
| 最近记录: |