為什麼 FAT32 不支持 4GB 以上的文件?
01-07
FAT32 的系統限制到底在哪裡?
因為FAT32文件系統里,表示文件長度信息的內容是保存在一個4位元組的數值里的,4位元組二進位能表示的最大數就是4294967295,這個數正好是4GB-1位元組。
下圖是一個FAT32文件系統目錄項的截圖:
黃色框表示文件名,紅色框是文件尺寸,可以看到文件尺寸一共就4個位元組,所以最多能表示的數字就是4GB-1,再大就變成0了。
參見:
FATFAT是文件分配表File Allocation Table的縮寫,FAT32就是32 bit File Allocation Table,用32bit記錄文件的大小,最大的數是2^32-1,就是4G-1bit1態度略不爽2百度或者google可以有更多信息
最近也遇到了這個問題,其實我發現很大一部分人(我自己就是)的問題是,FAT32中,FAT表裡的每個簇地址是用4個位元組來表示的,那麼整個大小不應該是 * 簇大小 嗎?事實的確如此,不過這個和FAT32不支持4GB以上的文件並沒有太大聯繫。限制文件大小的是文件目錄項(Dir Entry)(這應該算是一個廣義上的FCB吧?),這個裡面用於表示文件大小的數據只有32位,單位是位元組,所以文件最大只能是4GB,就是最頂樓分析的那個啦。
錯誤已刪除,見樓頂的正確回答
推薦閱讀:
※Linux 文件系統與 Windows 文件系統的差異是什麼?
※為什麼Linux說 Mac文件系統很垃圾,Mac未來的文件系統是什麼樣的呢?win8有新的文件系統么?
※SSD 是否需要使用特別的文件系統?
※如何理解SSD的寫放大?
※為什麼計算機中需要各種文件格式(即不同擴展名的文件)?
TAG:文件系統 |