データが入っているディスク上のファイルのサイズを0バイトにするにはどうすればよいですか?


106

Windows 10には362バイトのデータを含むファイルがありますが、「ディスク上のサイズ」はわずか0バイトです。これは、アセンブリで記述され、Notepad ++に保存された単純な「Hello world」プログラムです。

ファイルのサイズが362バイトのときに、ディスク上のサイズがゼロになる可能性はありますか?

通常のハードディスクではなくSSDを使用しています。

[プロパティ]ダイアログのスクリーンショット:

[プロパティ]ダイアログのスクリーンショット


4
簡単な答え:コンテンツを保存するためにディスク上に追加のスペースが必要ない場合。
デビッドシュワルツ

11
@Thomas重複ではありません。名前は似ているように聞こえますが、その質問は、どこかで登録が必要なのに、Windowsがゼロバイトファイルをゼロサイズと宣言する理由を尋ねていることです。この質問は、ファイルにデータがある場合でもディスク上のサイズがゼロになる理由を尋ねます。
ベンN


@BenNは不適切だというフラグを立てていますが、それは確かに重複ではないからです。
ウィリアム

こんにちはCoder88、私はあなたの投稿を重複としてフラグ付けした人が間違っていたと信じています-他の質問は何か違うことを尋ねていました。あなたは本当に良い質問をしました。質問が解決されたことを示すつもりであれば、ここの回答の横にあるチェックマークをクリックできます。
ベンN

回答:


155

これは、ファイルが非常に小さく、その内容とファイルシステムの簿記が1KBに収まる場合に発生します。ディスク容量を節約するために、NTFSは小さなファイルを「常駐」状態に保ち、その内容をファイルレコードに保存するため、クラスターを割り当てる必要はありません。したがって、ファイルレコード以外に何もないため、ディスク上のサイズはゼロです。ファイルが十分に大きくなると、NTFSはそれを「非常駐」にし、1つ以上のクラスターを割り当て(ゼロ以外の「ディスク上のサイズ」を作成)、データの場所のファイルレコードに「マッピングペア」を作成しますクラスターを指します。

SSDハードドライブまたはWindows 10はこれに影響しません。これは単にNTFS機能です。さらに読む:NTFSファイル成長の4つの段階

「ディスク上のサイズ」メトリックは正確ではないことに注意してください。たとえば、NTFSファイルレコードが占有する定数1KBが含まれることはありません。このメトリックはWindows 95で導入されました。Windows95はNTFSを使用していないため、この現象を説明できませんでした。クラスターサイズの次の倍数に切り上げられたファイルサイズを示しただけです。それらの間にある多くのWindowsバージョンがNTFSと常駐ストレージを使用していても、その推定アルゴリズムはWindows 7に引き継がれました。Windows 8でようやく更新され、常駐データのみのファイルをディスク上のゼロサイズとしてカウントするようになりました。さらに読む:「ディスク上のサイズ」とは何ですか?


1
しばらくの間、データ重複排除の効果を見ていると思っていました(blog.fosketts.net/2012/01/03/…)が、この機能は「ディスク上のサイズ」メトリックのようなものに対して透過的なレベルで機能すると考えています。
-misha256

8
しかし、待ってください... NTFSボリューム(Windows 7)でOPの動作を複製できません。小さなファイル(わずか1バイトの長さ)の作成方法に関係なく、ファイルプロパティダイアログによると、それぞれが4KBの「ディスクスペース」を占有します。うーん...
misha256

8
@ misha256ええと、Windows 8.1では700バイト以下のファイルで再現できます。私の推測では、アルゴリズムはWindows 7と8.1の間のどこかでスマートになったと思います。元々、NTFSの派手なもの(source)を知らなかったからです。ファイルが2番目の段階に移行すると、元のサイズに戻ることはありません。
ベンN

6
@Philippどちらの方法でも議論できると思います。伝統的に、「ディスク上のファイル」は「割り当てられたクラスターのサイズ」でした(たとえば、大きすぎるクラスターサイズを選択した場合の効果を確認できました)。私の知る限り、ファイルシステムに必要な「カタログ」スペース(「ディレクトリエントリ」のサイズや「FATエントリのチェーンの長さ」)は含まれていません。
TripeHound

3
@Philipp:とにかく、ファイルサイズの簿記を含むことは非常に速くなります:3つの名前を持つ1クラスターのファイルをどのように記述しますか?
デュプリケータ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.