大家傳統的理解中,一直以為文件大小就是占用空間的大小,其實文件大小和占用空間的區別還是很大的,下面武林網來看看文件大小和占用空間兩者之間有什么差別?
Windows會使用用NTFS和FAT的文件系統管理磁盤文件,這個大家都知道,而所有文件系統都是基于簇的大小,也就是分配單元的大小,說白了,就是分配用來保存文件的最小磁盤空間量。而常用的Windows XP NTFS下最大的默認簇大小為 4 千字節 (KB)。也就是說,每個文件都是按4K的空間劃分保存的,即使這個文件只有100字節。舉個生活中的例子吧,很多人一起吃飯,這個分配單元就相當于碗的大小,這個文件就好比碗里的飯,每個人的飯量不一樣,有人吃的多,就需要兩個碗來盛飯,但是有的人吃的少,但也是要占一個碗。了解這個概念以后,理解起來文件大小和占用空間的關系就簡單多了。我們通過兩個例子來進行分析。
1、“文件大小”與“所占空間”的差別
例1:找到D盤上的Ersave2.dat文件,用鼠標右鍵單擊該文件,選擇“屬性”,即可打開對話框,我們可以看到,Ersave2.dat的實際大小為655,628 Byte(字節),但它所占用的空間卻為688,128 Byte,兩者整整相差了32KB。
例2:同樣選擇該文件,將它復制到A盤,你會發現該文件實際大小和所占空間基本一致,同為640KB,但字節數稍有差別。再將該文件復制到C盤,再查看屬性的時候,它所占用的空間跟之間的兩次又有差距了。
從這三次的復制情況,我們不難看出,文件的大小沒有變化,而所占空間發生變化。說明占用空間的大小不是取決于文件的大小,而是磁盤的分配單元不同導致的。就像我們剛才講過的文件磁盤上的儲存機制,文件的大小就是文件內容實際有的字節數,所以會以Byte也就是字節,來作為衡量單位。只要文件的內容不變化,大小就不會變化。而在磁盤中的占用空間卻不是,它是以Cluster,也就是簇來作為衡量單位。
2、分區格式與簇大小
在例2中,同一個文件在不同磁盤分區上所占的空間不一樣大小,這是由于不同磁盤簇的大小不一樣導致的。簇的大小主要由磁盤的分區格式和容量大小來決定,其對應關系如表1所示。
小編的軟盤采用FAT分區,容量1.44MB,簇大小為512 Byte(一個扇區);C盤采用FAT 32分區,容量為4.87GB,簇大小為8KB;D盤采用FAT 32分區,容量為32.3GB,簇大小為32KB。計算文件所占空間時,可以用如下公式:
簇數=取整(文件大小/簇大小)+1 所占空間=簇數×磁盤簇大小
通過這個計算公式,就可以很輕易算出Ersave2.dat文件實際占用的空間。需要注意的是,在這個公式中,文件大小和簇大小應以Byte為單位,否則可能會產生誤差。如果需要以KB為單位來進行計算的話,將字節數除以1024就可以了。
公式中文件大小和簇大小應以Byte為單位,否則可能會產生誤差。如果要以KB為單位,將字節數除以1024即可。利用上述的計算公式,可以計算Ersave2.dat文件的實際占用空間。
可能有朋友要問了,怎么才能知道磁盤中簇的大小呢,下面給朋友們說三個方法:
一、在WINDOWS的操作系統中,我們可以用Chkdsk命令來進行查看,打個比方,我們要查看C盤的簇大小,操作如下,首先點擊【開始菜單】,選擇【運行...】,在運行輸入框鍵入“CMD”后回車,然后在黑色DOS下鍵入“C:”后點回車鍵確認,再輸入“Chkdsk”后點擊回車鍵確認,就可以從它的分析結果中,得到C盤簇的大小。不過在結果中會把簇稱之為“分配單元”或者“Allocation unit”。
二、還可以借助PQ Magic等磁盤工具來檢測。目前很多磁盤工具都可以顯示磁盤信息的詳情。例如在PQ Magic中,選擇要查看的磁盤分區,然后單擊右鍵選擇【高級】,然后選擇【調整簇的大小】,就可以從對話框中看到或者更改當前磁盤設置的簇大小。
三、也可以自己手動創建一個100字節以下的文檔,然后把文件復制到想要查看簇大小的磁盤分區中,打開文件屬性,在所占空間一欄中顯示的數值就是簇的大小。