俞木發(fā)
稀疏文件是應(yīng)用程序生成的一種特殊文件,這類(lèi)文件尺寸可以非常大,主要由“00”構(gòu)成的,實(shí)際占用很少的磁盤(pán)空間,但是會(huì)向系統(tǒng)聲明其所需要的總空間。稀疏文件可以通過(guò)系統(tǒng)自帶的fsutil命令創(chuàng)建。例如,以管理員身份啟動(dòng)命令提示符,輸入命令“fsutil file createnew d:\system157286400”,回車(chē)執(zhí)行后即可在D盤(pán)(分區(qū)需采用N T F S 格式)中創(chuàng)建一個(gè)名為system的文件。輸入并執(zhí)行命令“dir d:”可以看到其大小為150MB(圖1)。
命令解釋?zhuān)?/p>
“157286400 ”表示創(chuàng)建大小為157286400字節(jié)(即1 5 0 M B 的文件,1MB=1048576B)的文件,如果要?jiǎng)?chuàng)建其他大小的文件,請(qǐng)自行換算。
繼續(xù)輸入并執(zhí)行下列的命令(命令尾部的冒號(hào)及其后面的內(nèi)容為注釋?zhuān)瑢?shí)際操作時(shí)不用輸入)(圖2):
fsutil s parse s etflag d :\system : 可以將該文件轉(zhuǎn)換為稀疏文件
fsutil sparse queryflag d:\system :查看文件是否為稀疏文件
fsutil sparse setrange d:\system 0157286400 :將文件稀疏范圍設(shè)置為0~157286400字節(jié),即將150MB空間全部設(shè)置為稀疏空間。
現(xiàn)在打開(kāi)D盤(pán),右擊system并選擇“屬性”,在屬性窗口中可以看到該文件的大小為150MB,但是占用的空間卻顯示為0字節(jié),這正是稀疏文件的典型特征(圖3)。這里需要注意的是,只有在NTFS格式的分區(qū)中創(chuàng)建的稀疏文件才不會(huì)占用創(chuàng)建數(shù)值大小的空間。
對(duì)于稀疏文件內(nèi)容則可以借助DiskGenius軟件來(lái)查看。啟動(dòng)程序后打開(kāi)D盤(pán),在右側(cè)的窗格中找到并雙擊system文件,在打開(kāi)的窗口中可以看到文件數(shù)據(jù)都是顯示為“00”(圖4)。
通過(guò)上文的介紹了解了稀疏文件的含義及其創(chuàng)建的過(guò)程,在實(shí)際使用中就可以利用稀疏文件來(lái)為一些操作服務(wù)。如前言所述的可用空間管理案例,由于移動(dòng)硬盤(pán)經(jīng)常要借給同事使用,現(xiàn)在可以借助稀疏文件來(lái)更好地對(duì)可用空間進(jìn)行個(gè)性化管理。
1確定分區(qū)可用空間的數(shù)值假設(shè)移動(dòng)硬盤(pán)的盤(pán)符為D,首先將其回收站中的文件清空,接著查看移動(dòng)硬盤(pán)的可用空間,如本例數(shù)值是151MB。
2快速創(chuàng)建指定大小的稀疏文件啟動(dòng)記事本程序并新建一個(gè)批處理文件1.bat,放置在D:\備用,代碼如下:
set free1=1048576
set /p f ree2=請(qǐng)輸入可用空間倍數(shù)(MB):
set /a free3=%free2%*%free1%
fsut i l file createnew d:\ system%free3%
fsutil sparse setflag d:\system
Attrib +h +s d:\system
這里可以使用稀疏文件盡可能地占用移動(dòng)硬盤(pán)的可用空間,如設(shè)置稀疏文件占用150MB。運(yùn)行上述批處理后在打開(kāi)的窗口中輸入150,回車(chē)即可(圖5)。
此時(shí)再打開(kāi)D盤(pán)查看創(chuàng)建文件前后的可用空間并加以比較,可以看到創(chuàng)建稀疏文件后可用空間就只剩余1.8MB(Windows對(duì)容量計(jì)算會(huì)略有誤差)(圖6)。
3快速釋放可用空間
為了方便自己使用,繼續(xù)創(chuàng)建一個(gè)批處理文件2.bat,也放置在D:\備用,代碼如下:
set free11=1048576
set /p free22=請(qǐng)輸入需要使用空間倍數(shù)(MB):
set /a free4=%free22%*%free11%
fsutil sparse setrange d:\system 0 %free4%
在以后如果需要使用其中的10 0MB可用空間存儲(chǔ)文件時(shí),運(yùn)行2.bat后輸入100,那么稀疏文件的“0~104857600”字節(jié)空間(即100MB)就變?yōu)榭捎玫拇鎯?chǔ)空間(圖7)。
再次打開(kāi)D盤(pán)的“屬性”窗口,可以看到此時(shí)的可用空間已經(jīng)變?yōu)?01MB了(含之前剩余的1MB)(圖8)。這樣自己需要使用多少空間就釋放多少,釋放完成后如果要重新填滿(mǎn)空間,可以根據(jù)剩余空間大小,刪除“d:\system”后再次運(yùn)行1.bat,重新填充即可。
從上面的操作可以看到,本文介紹的方法和只是在移動(dòng)硬盤(pán)中簡(jiǎn)單地存儲(chǔ)無(wú)用文件來(lái)填充空間操作不同,通過(guò)fsutil命令可以在極短的時(shí)間內(nèi)快速創(chuàng)建指定大小的“稀疏文件”。如有需求,可以在1秒內(nèi)創(chuàng)建100GB大小的文件來(lái)填充空間,并可以快速設(shè)置稀疏區(qū)域來(lái)釋放可用空間,非常適合對(duì)可用空間存儲(chǔ)有特定需求的用戶(hù)使用。