この方法では、ゼロで構成される巨大なファイルを作成できますが、ディスク上では数キロバイトしか占有できません。 0x00の代わりに他のデータが書き込まれると、実ディスク領域が割り当てられます。 スパース性は、非常に大きな空き領域があるファイルでのみディスクスペースを節約するのに役立ちます。
コマンドラインでfsutilシステムユーティリティを使用してスパースファイルを操作する方法を示します。
ユーティリティを使用して、空の大きなファイルを作成します。
fsutil file createnew test.nul 10000000000
ファイル属性「スパース」を設定します。
fsutil sparse setflag test.nul
属性自体はまだディスク容量を節約しません。 また、ファイル内の解放される領域をマークする必要があります。 ファイル全体が空なので、領域をファイルサイズに設定できます。
fsutil sparse setrange test.nul 0 10000000000
できた 結果を見ます。
2006年に作成した小さなユーティリティのソースコードのAPI関数を使用して、プログラムでこれらの操作を行う方法を確認できます。 また、コンソールでもあり、fsutilと同様に、スパース属性を割り当てて、解放された領域の範囲を設定できます。 さらに、私のプログラムは、特定の指定サイズよりも大きいファイル内の空の領域を検索し、それらを解放することができます。 オフセットを自分で計算する必要はありません。
参照: