为什么FAT32磁盘限制为4GB文件?

时间:2011-01-11 20:43:20

标签: filesystems fat32 filesize

我不是在寻找解决方法;我想要一个解释。我通过Google找到的大多数链接都告诉我文件限制为4GB,但不是原因。

我知道维基百科的解释:http://en.wikipedia.org/wiki/File_Allocation_Table#FAT32

但是这仍然没有详细说明原因。 (SCANDISK与它有什么关系?)

也许那时我会理解是否有可能克服4GB的文件大小限制。

3 个答案:

答案 0 :(得分:25)

因为FAT32存储32位文件大小,并且您可以以32位存储的最大值是2 ^ 32-1~ = 4.29e9。 2 ^ 32-1个字节= 4GB - 1个字节。

(实际上,这是在维基百科文章中解释的。)

答案 1 :(得分:8)

为了扩展该答案,FAT32源自FAT16和FAT12。当引入FAT12时,PC运行16位操作系统,并且没有大于10兆字节的驱动器。我认为没有人会期望PC上的任何人都需要一个比最大可用驱动器大四百倍的文件。此外,即使微软有远见为每个目录条目分配一个额外的字节来保存文件大小的32-39位(允许每个文件高达1TB),任何应用程序员都会使用它是值得怀疑的。没有语言为大于32位的整数数学提供方便的支持;甚至32位数学也被认为非常有趣。

在我看来,一个更大的问题是为什么我没有意识到任何努力转向不基于顺序编号扇区的标准非FAT32存储接口。闪存驱动器和硬盘驱动器都可以从了解各种扇区写入的逻辑重要性中获益(在闪存的情况下,因为它可以消除在执行磨损管理时复制已删除扇区的需要;在硬盘驱动器的情况下,因为它允许写入以不违反数据一致性要求的方式重新排序。)

答案 2 :(得分:0)

我有同样的疑问,终于意识到每个文件都有自己的元数据包含4个字节的文件大小。因此,最大文件大小为4G - 1个字节。