私は最近、ディレクトリ内のあらゆる場所にファイルをコピーし、すべての重複を削除してハードリンクに置き換えるプログラムでハードリンクを試しています。私はそれを大丈夫にした。ハードリンクが機能する方法で、それはディスク上のデータ自体への単なる別の参照であることを理解しています。したがって、作成したハードリンクからデータにアクセスした場合、同じように見えます。
問題は、実際に使用されているディスクスペースを見つけることです。これは、これが実際にスペースを節約していることを確認する際の問題の1つです。つまり、12Kファイルから始めて、そのファイルのハードリンクを作成し、エクスプローラーで両方を選択すると、実際の12Kではなく、ディスクで使用されている24Kとして表示されます。
プロセスの前後でディスクの空き領域を照会して比較できることはわかっています。しかし、それは最初の評価であり、事後に検証するのは困難です。GetFileInformationByHandleを使用して、問題のファイルに複数の参照があるかどうかを確認できることも知っています。
それで、ここに何かアイデアはありますか?ファイルごとにGetFileInformationByHandleを呼び出し、そのすべてのデータをログに記録してから、インデックス参照が重複しているファイルを削除して、実際に使用されているディスク容量を正確に把握する必要がありますか?または、これを達成するためのより簡単な方法はありますか?