17

我不是在寻找解决方法;我想要一个解释。我通过谷歌找到的大多数链接只是告诉我文件限制是 4GB,但不知道为什么。

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

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

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

4

3 回答 3

32

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

(事实上​​,这在 Wikipedia 文章中有解释。)

于 2011-01-11T20:46:08.827 回答
9

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

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

于 2011-01-11T23:58:07.160 回答
0

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

于 2015-02-15T09:26:35.903 回答