標籤:

為什麼 FAT32 不支持 4GB 以上的文件?

FAT32 的系統限制到底在哪裡?


因為FAT32文件系統里,表示文件長度信息的內容是保存在一個4位元組的數值里的,4位元組二進位能表示的最大數就是4294967295,這個數正好是4GB-1位元組。

下圖是一個FAT32文件系統目錄項的截圖:

黃色框表示文件名,紅色框是文件尺寸,可以看到文件尺寸一共就4個位元組,所以最多能表示的數字就是4GB-1,再大就變成0了。

參見:

FAT


FAT是文件分配表File Allocation Table的縮寫,FAT32就是32 bit File Allocation Table,用32bit記錄文件的大小,最大的數是2^32-1,就是4G-1bit

1態度略不爽

2百度或者google可以有更多信息


最近也遇到了這個問題,其實我發現很大一部分人(我自己就是)的問題是,FAT32中,FAT表裡的每個簇地址是用4個位元組來表示的,那麼整個大小不應該是 2^{32} * 簇大小 嗎?事實的確如此,不過這個和FAT32不支持4GB以上的文件並沒有太大聯繫。限制文件大小的是文件目錄項(Dir Entry)(這應該算是一個廣義上的FCB吧?),這個裡面用於表示文件大小的數據只有32位,單位是位元組,所以文件最大只能是4GB,就是最頂樓分析的那個啦。


錯誤已刪除,見樓頂的正確回答


推薦閱讀:

Linux 文件系統與 Windows 文件系統的差異是什麼?
為什麼Linux說 Mac文件系統很垃圾,Mac未來的文件系統是什麼樣的呢?win8有新的文件系統么?
SSD 是否需要使用特別的文件系統?
如何理解SSD的寫放大?
為什麼計算機中需要各種文件格式(即不同擴展名的文件)?

TAG:文件系統 |