web-dev-qa-db-ja.com

WindowsにはLinuxのようなiノード番号がありますか?

WindowsにはLinuxのようなiノード番号がありますか? Windowsはファイルを内部的にどのように管理しますか?

45
Gautam Bhalla

使用される用語は、Unixの世界で見られるものとは少し異なりますが、ファイルを一意に識別する整数を持つという点で、NTFSと一部のWindows APIは、類似した「ファイルID」の概念を公開します。

GetFileInformationByHandle を使用して、開いているハンドルのファイルIDを照会できます。 nFileIndexHighnFileIndexLow;を参照してください。これは、それぞれ64ビットのファイルIDの上位部分と下位部分です。

NtCreateFile は、IDでファイルを開くこともできます。 FILE_OPEN_BY_FILE_ID 国旗。ファイルIDで開くには、ボリュームハンドルが必要です。

37
asveikau

はい。 NTFSはBツリーインデックスシステムを使用します。 MFT内のすべてのファイルには、64ビットのファイルインデックス番号があります。ファイルIDと呼ばれるこの番号は、そのボリューム内でのみファイルを一意に識別します。つまり、同じPC上の2つの別々のボリュームにある2つのファイルは、同じファイルIDを持つ場合があります。詳細については、このMSDNの記事を参照してください。

https://msdn.Microsoft.com/en-us/library/windows/desktop/aa363788(v = vs.85).aspx

2番目の質問、「Windowsはどのようにファイルを内部で管理するか」については、次のTechNetの記事を参照してください。

https://technet.Microsoft.com/en-us/library/cc781134(v = ws.10).aspx

9
Andrew Howlett

はい、そうです。通常、fileIDと呼ばれます。 Win8コマンドシェルでこれを試してください。

fsutil file queryfileid  <filename>
6
Buai

この質問は、特定のOSよりもファイルシステムに関するものです。各ファイルシステムは異なる方法でファイルを処理します(そして各OSは複数のファイルシステムをサポートできます)。

http://pcnineoneone.com/howto/filesystems1/ は、Windowsで人気のある2つのファイルシステムであるFATとNTFSについてかなり優れた記事があります。

5
Rontologist

ここには2つのことがあります。 INodeという用語と、INodeの用語またはその代わりにINodeのようなものを使用するファイルシステムの実装。

私が知っているすべてのWindowsファイルシステム(FAT *、NTFS)は、実際の実装でiノードのような構造を使用しています。

答えをさらに簡素化するには

(INodeは、ファイルに関するメタデータのブロックと考えてください。)

用語としてのINode:Windowsファイルシステムにはない。

概念としてのINode:Windowsには他の構造があり、プロパティと使用法は似ていますが、異なる名前で使用されます

5
Ajeet Ganga