1

(この質問は難しいです... NTFS の知識や NT ネイティブ API の使用が必要になる場合があります。注意してください。) :)

HANDLE2 つのファイルに 2つの が与えられた場合、2 つの がまったく同じファイルに属しており、ディスク上でストリーミングされているかどうかを(高い確率でではなく)確実に確認するにはどうすればよいでしょうか?HANDLE

これは、たとえば、8 バイトの NTFS ファイル ID を確認するだけでは不十分であることを意味しHANDLEます。同じファイル ID を持つ 2 つの が同じファイルの異なるデータ ストリームを指している可能性があるためです。本当に同じで、名前だけが異なります (ハードリンク)。

(この方法では、フォルダー内のすべてのファイルに対して操作を実行する場合、同じデータ ストリームに対して異なる名前で操作を 2 回実行する必要はありません。)

4

1 に答える 1

1

これには、FileStreamInfoを要求するGetFileInformationByHandleEx()が必要です。ストリーム名を返します。

SDKドキュメントのこの警告に注意する必要があります。

特定のファイル情報クラスは、オペレーティングシステムのリリースごとに動作が少し異なります。これらのクラスは基盤となるドライバーによってサポートされており、それらが返す情報はオペレーティングシステムのリリース間で変更される可能性があります。

プログラムですぐに利用できる(または利用できるはずの)情報の回復に依存することは避けてください。

于 2011-01-09T08:26:07.817 に答える