最近、ハード・リンクを使用して、ディレクトリ内のすべての場所にファイルをコピーし、すべてのコピーを削除し、ハード・リンクで置き換えています。私はそれを大丈夫にしました。私は、ハードリンクがディスク上のデータそのものへの参照であることを理解しています。したがって、作成したハードリンクからデータにアクセスすると、同じように見えます。ハードリンクでディレクトリに使用されている実際のサイズを確認する
問題は実際に使用されているディスク容量を見つけることであり、これは実際にスペースを節約することの問題の1つです。言い換えると、12Kファイルで始める場合は、そのファイルのハードリンクを作成し、エクスプローラで両方を選択すると、ディスクに24Kが表示され、実際には12Kではなく表示されます。
私は、プロセスの前後でディスクの空き領域をクエリして比較することができます。しかし、それは事実の後で検証するのが難しい初期の評価です。私はまた、GetFileInformationByHandleを使って問題のファイルが複数の参照を持つかどうかを知ることができます。
ここに任意のアイデアはありますか?各ファイルのGetFileInformationByHandleを呼び出し、そのデータをすべてログに記録し、実際に使用されているディスク容量の正確なビューを取得するために重複インデックス参照を持つファイルを削除する必要がありますか?またはこれを達成するためのより簡単な方法はありますか?
ファイルに複数の参照があるという事実だけでは十分ではありません。その後、他の既存のリンクが、現在計算しているサイズの同じディレクトリまたはディレクトリツリーに属しているかどうかを知る必要があります。つまり、問題のディレクトリ(またはディレクトリツリー)内の任意の2つ以上のハードリンクが同じエンティティを指している場合です。このタスクの非自明の合計サイズを示す場合でも、Windowsエクスプローラはハードリンクを考慮していないという事実の背後にある理由かもしれません。 –
ハードリンクが領域を節約することを確認する必要はありません。彼らはそうする。 –