Windows有像Linux这样的Inode编号吗?

Gau*_*lla 46 linux windows filesystems

Windows有像Linux这样的Inode编号吗?Windows如何在内部管理文件?

asv*_*kau 37

使用的术语与您在Unix世界中发现的术语略有不同,但是在具有唯一标识文件的整数方面,NTFS和某些Windows API暴露了类似"文件ID"的概念.

您可以通过查询打开句柄的文件ID GetFileInformationByHandle.见nFileIndexHigh,nFileIndexLow; 这是文件ID的高低部分,即64位.

NtCreateFile也可以通过其ID打开文件.看到FILE_OPEN_BY_FILE_ID旗帜.您需要按文件ID打开卷句柄.

  • [也可以从命令行查看?](/sf/ask/3091386511/) (2认同)

小智 11

是.NTFS使用B树索引系统.MFT中的每个文件都有一个64位的文件索引号.此编号称为文件ID,仅在其体积内唯一标识文件.即,同一台PC上两个独立卷上的两个文件可能具有相同的文件ID.有关更多详细信息,请参阅此MSDN文章.

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

关于你的第二个问题,"windows如何内部管理文件",请参阅此technet文章:

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

  • 即使在 Unix 文件系统上 [inode 编号仅在文件系统内是唯一的](/sf/ask/1124892891/)。[什么是超级块、Inode、Dentry 和文件?](https://unix.stackexchange.com/q/4402/44425) (2认同)

小智 8

是的,它确实.一般称为fileID.在Win8命令shell中尝试这个:

fsutil file queryfileid  <filename>
Run Code Online (Sandbox Code Playgroud)


Aje*_*nga 6

这里有两件事.术语INode,以及使用INode术语或类似INode的文件系统实现.

我所知道的所有Windows文件系统(FAT*,NTFS)在实际实现中都使用类似Inode的结构.

进一步简化答案

(将INode视为有关文件的元数据块.)

作为术语的INode:没有Windows文件系统没有它.

INode作为概念:Windows将具有一些其他结构,在属性和用法上类似,但使用不同的名称


Ron*_*ist 5

这个问题更多是关于文件系统而不是我认为的特定操作系统.每个文件系统以不同方式处理文件(并且每个OS可以支持多个文件系统).

http://pcnineoneone.com/howto/filesystems1/在FAT和NTFS上有很好的写法,这是两个流行的windows文件系统.

  • 您能否在此处粘贴链接的相关部分? (2认同)