NTFSに何万ものファイルを含むフォルダがあります。そのフォルダ内のすべてのファイルを削除し、1を保存しました。contig.exeを実行してそのフォルダを最適化したので、1つのフラグメントのみになりました。ただし、そのフォルダーのサイズは8MBのままです。これは、インデックスに多くのギャップがあることを意味します。何故ですか?その1つのファイルを削除すると、インデックスのサイズは自動的にゼロになります。私の推測では、MFTに折りたたまれているためです。ファイルの内容に基づいてインデックスファイルを最適化することにより、NTFSにインデックスファイルを実際に最適化させる方法はありますか?あなたが知っているAPIはありますか?Contig.exeは、物理ファイルのみを最適化します。
3 に答える
これは、NTFSが他のほとんどすべてのFSと同じように、ディレクトリを縮小することを好まないように見える1つの方法だと思います。
したがって、その高度な言語「BAT」を使用するハイテク手法を適用する必要があります:)
折りたたみ.bat
REM Invoke as "collapse dirname"
ren dirname dirname.old
mkdir dirname
cd dirname.old
move * ../dirname/
cd ..
rmdir dirname.old
インデックスには緩みがありますが、ギャップはありません。技術的に無駄なスペースがあることを意味するように区別しますが、NTFSがインデックスを列挙/クエリ/その他何でもするために8MBを解析する必要があるわけではありません。ツリーのルートがどこにあるかを認識しており、たまたま多くの余分な割り当てが残っています。それがどれほど役に立たないかを考えると、おそらく応答が詳細すぎます。
断片化は、まったく別の問題である可能性があります。
この質問に対する受け入れられた回答を見てみましょう: NTFS パフォーマンスと大量のファイルとディレクトリ
作成者は、ファイル インデックスの断片化に関する文書化されていない情報をいくつか提供しました。これは、インシデントの際にマイクロソフト テクニカル サポートから入手したものです。短いバージョンでは、DEFRAG はフォルダー インデックスを最適化せず、そのフォルダー内のファイルのみを最適化します。ファイル インデックスをデフラグする場合は、SysInternals の CONTIG ツールを使用する必要があります。このツールは現在 Microsoft によって所有および配布されています (無料)。答えはCONTIGへのリンクを提供します。