Windows でディレクトリの inode 番号を見つける必要があります。_stat
and関数を使用して_stat64
、ファイルの inode およびその他の情報を取得できます。しかし、Windowsディレクトリに同じものを使用すると、どのディレクトリにも常に同じ番号が付けられます。
Windows ディレクトリの inode 番号を見つける方法はありますか?
st_ino
ファイルの情報ノード (inode) の番号 (UNIX 固有)。UNIX ファイル システムでは、inode はファイルの日付とタイム スタンプ、権限、および内容を記述します。ファイルが相互にハードリンクされている場合、それらは同じ inode を共有します。i ノード、したがって st_ino は、FAT、HPFS、または NTFS ファイル システムでは意味がありません。
そのため、Windows システムの inode 番号に依存しないでください。これは Unix 固有の概念です。
Windows が inode を使用せずに同様のものを使用してファイルを管理する方法については、このSO 投稿を参照してください。
Windows ファイル システムには、ほとんどの Unix ファイル システムの inode 番号に直接対応するものはありません。
問題のディレクトリを一意かつ明確に識別するものが必要な場合は、ボリューム シリアル番号/FileId の組み合わせで十分です。(2 番目のパラメーター) を に設定すると、これらを取得できますGetFileInformationByHandleEx
(名前にもかかわらず、ディレクトリに関する情報を取得できます) 。FileInformationClass
FileIdInfo
ただし、これは主に NTFS に役立ちます。ドキュメントでわかるように、FAT ファイル システムの制限は非常に重要です (ただし、ニーズによっては、何もないよりはましな場合もあります)。
ウィキペディアから:
インデックス ノード (inode) は、UFS などの従来の Unix スタイルのファイル システム上のデータ構造です。inode には、データと名前を除く、通常のファイル、ディレクトリ、またはその他のファイル システム オブジェクトに関するすべての情報が格納されます。
Windows で使用される通常のファイル システムは、inode の概念に基づいて構築されていません。それらは異なるため、報告する "inode 番号" などはありません。
明確な説明のリンクは次のとおりです。