10

大きなファイルがある程度断片化されていることを認識し、最適化を実行する必要があるときにユーザーに警告する方法を提供したいと考えています。さらに、ファイルがディスク上で実際にどのように断片化されるかを示す視覚的な表示を見せたいと思います。

どのように断片化されているかを計算する方法や、視覚的な表示を作成する方法を知る必要はありません。私が知る必要があるのは 2 つのことです。1) 特定のファイルの断片を含むディスク上の特定のクラスターを特定する方法と、2) そのディスク上のクラスターの総数を特定する方法です。基本的に、このファイルの一部を含むすべてのクラスターのリストと、それらの各クラスターがディスク上のどこにあるかのリストが必要です。

ほとんどの最適化ユーティリティには、ファイルがディスク全体にどのように分散されているかを視覚的に表示する機能があります。私のディスプレイでは、1 つの特定のファイルがディスクのさまざまな領域にどのように分割されているかが示されます。ファイルのクラスター/セクターがディスク上のどこにあるかを知るために必要なデータを取得する方法を知る必要があるだけです。

4

1 に答える 1

11

DeviceIoControlこの機能はFSCTL_GET_RETRIEVAL_POINTERS制御コードで使用できます。

FSCTL_GET_RETRIEVAL_POINTERS 操作は、特定のファイルのディスク上の割り当てと場所を記述する可変サイズのデータ​​構造を取得します。この構造は、仮想クラスター番号 (ファイルまたはストリーム空間内の VCN オフセット) と論理クラスター番号 (ボリューム空間内の LCN オフセット) の間のマッピングを記述します。

于 2012-10-05T21:54:44.207 に答える