Windows是否有像Linux这样的Inode编号? Windows如何在内部管理文件?
答案 0 :(得分:37)
使用的术语与您在Unix世界中发现的术语略有不同,但是在具有唯一标识文件的整数方面,NTFS和某些Windows API暴露了类似“文件ID”的概念
您可以通过GetFileInformationByHandle
查询打开句柄的文件ID。见nFileIndexHigh
,nFileIndexLow
;这是文件ID的高低部分,即64位。
NtCreateFile
也可以通过其ID打开文件。请参阅FILE_OPEN_BY_FILE_ID
标志。您需要按文件ID打开卷句柄。
答案 1 :(得分:9)
是。 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
答案 2 :(得分:5)
这个问题更多是关于文件系统而不是我认为的特定操作系统。每个文件系统处理文件的方式不同(每个操作系统都可以支持多个文件系统)。
http://pcnineoneone.com/howto/filesystems1/在FAT和NTFS上有很好的写法,这是两个流行的Windows文件系统。
答案 3 :(得分:5)
这里有两件事。术语INode,以及使用INode术语或类似INode的文件系统实现。
我所知道的所有Windows文件系统(FAT *,NTFS),在实际实现中都使用类似Inode的结构。
进一步简化答案
(将INode视为有关文件的元数据块。)
作为术语的INode:没有Windows文件系统没有它。
INode作为概念:Windows将具有一些其他结构,在属性和用法上类似,但使用不同的名称
答案 4 :(得分:5)
是的。通常称为fileID
。在Win8命令shell中试试这个:
fsutil file queryfileid <filename>
答案 5 :(得分:-2)
Inodes是POSIX概念。现代Windows版本使用NTFS。对NTFS的深入描述:Inside NTFS
答案 6 :(得分:-2)
不,在Windows NTFS中没有与inode等效的内容.Inode更多是基于** IX的文件系统。
但是,是的,NTFS为每个文件存储一个唯一的8字节引用号。
欢呼。如果您想了解更多细节,请注意