![]() |
學校地址:湖南省 長沙市 雨花區 車站南路紅花坡路口 |
![]() |
學校地址:湖南省 長沙市 雨花區 車站南路紅花坡路口 |
在Windows系統中,一個文件的大小(字節數)和它在硬盤上(或其他存儲介質上)所占的空間是兩個既相互聯系又有區別的概念。在不同的情況下,同一個文件的所占空間會發生變化。
1.文件大小與所占空間的差別
為了便于大家理解,我們先來看兩個例子:
例1:找到D盤上的Ersave2.dat文件,用鼠標右鍵單擊該文件,選擇屬性,即可打開對話框,我們可以看到,Ersave2.dat的實際大小為655,628 Byte(字節),但它所占用的空間卻為688,128 Byte,兩者整整相差了32KB。
例2:同樣是該文件,如果將它復制到A盤,你會發現該文件實際大小和所占空間基本一致,同為640KB,但字節數稍有差別。再將它復制到C盤,查看其屬性后,你會驚奇地發現它的大小和所占空間的差別又不相同了!
顯然,在這三種情況中,文件的實際大小沒有變化,但在不同的磁盤上它所占的空間卻都有變化。事實上,只要我們理解了文件在磁盤上的存儲機制后,就不難理解上述的三種情況了。文件的大小其實就是文件內容實際具有的字節數,它以Byte為衡量單位,只要文件內容和格式不發生變化,文件大小就不會發生變化。但文件在磁盤上的所占空間卻不是以Byte為衡量單位的,它 小的計量單位是簇(Cluster)。
小知識:什么是簇?
文件系統是操作系統與驅動器之間的接口,當操作系統請求從硬盤里讀取一個文件時,會請求相應的文件系統(FAT 16/32/NTFS)打開文件。扇區是磁盤 小的物理存儲單元,但由于操作系統無法對數目眾多的扇區進行尋址,所以操作系統就將相鄰的扇區組合在一起,形成一個簇,然后再對簇進行管理。每個簇可以括2、4、8、16、32或64個扇區。顯然,簇是操作系統所使用的邏輯概念,而非磁盤的物理特性。
為了更好地管理磁盤空間和更高效地從硬盤讀取數據,操作系統規定一個簇中只能放置一個文件的內容,因此文件所占用的空間,只能是簇的整數倍;而如果文件實際大小小于一簇,它也要占一簇的空間。所以,一般情況下文件所占空間要略大于文件的實際大小,只有在少數情況下,即文件的實際大小恰好是簇的整數倍時,文件的實際大小才會與所占空間完全一致。
2.分區格式與簇大小
在例2中,同一個文件在不同磁盤分區上所占的空間不一樣大小,這是由于不同磁盤簇的大小不一樣導致的。簇的大小主要由磁盤的分區格式和容量大小來決定,其對應關系如表1所示。
筆者的軟盤采用FAT分區,容量1.44MB,簇大小為512 Byte(一個扇區);C盤采用FAT 32分區,容量為4.87GB,簇大小為8KB;D盤采用FAT 32分區,容量為32.3GB,簇大小為32KB。計算文件所占空間時,可以用如下公式:
簇數=取整(文件大小/簇大小)+1
所占空間=簇數磁盤簇大小
公式中文件大小和簇大小應以Byte為單位,否則可能會產生誤差。如果要以KB為單位,將字節數除以1024即可。利用上述的計算公式,可以計算ersave2.dat文件的實際占用空間,如表2所示。
3.輕松查看簇大小
①用Chkdsk查看簇大小
在Windows操作系統中,我們可以使用Chkdsk命令查看硬盤分區的簇大小。例如我們要在Windows XP下查看C盤的簇大小,可以單擊開始運行,鍵入CMD后回車,再鍵入C:后回車,然后輸入Chkdsk后回車,稍候片刻從它的分析結果中,我們就可以得到C盤的簇大小,不過它把簇稱之為分配單元或者Allocation unit。
②用PQ Magic等磁盤工具來檢測
很多磁盤工具都具備磁盤信息顯示等功能。例如在PQ Magic中,選擇要查看的磁盤分區,然后單擊右鍵選擇高級調整簇大小功能,即可從顯示的對話框中可以看到該磁盤當前設置的簇大小。
③手工查看
手動創建一個100字節以下的文本文檔。然后將該文件復制到欲查看簇大小的磁盤分區中,在Windows下顯示該文件的屬性,其中所占空間處顯示的數值就是簇大小。
|