萬盛學電腦網

 萬盛學電腦網 >> 應用技巧 >> 系統應用--硬盤“所占空間”與“文件大小”之間的秘密在線閱讀

系統應用--硬盤“所占空間”與“文件大小”之間的秘密在線閱讀

 在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所示。


copyright © 萬盛學電腦網 all rights reserved