我需要在Windows中find一个目录的inode号码。 使用_stat
和_stat64
函数,我可以获取文件的inode和其他信息。 但是,当我使用相同的Windows目录,它总是给任何目录相同的号码。
有没有办法findWindows目录的inode号码?
从Windows统计文档 ,
st_ino中
该文件的信息节点(inode)的编号(特定于UNIX)。 在UNIX文件系统上,inode描述了文件日期和时间戳,权限和内容。 当文件彼此难以链接时,它们共享相同的inode。 inode和st_ino在FAT,HPFS或NTFS文件系统中没有任何意义。
所以,不要依赖Windows系统上的inode号码。 它是一个Unix特有的概念。
请参阅这个SO帖子 ,了解Windows如何管理没有inode的文件,但使用类似的东西。
Windows文件系统在大多数Unix文件系统中都没有与inode编号直接相似的模式。
如果你想要一些唯一的,明确的标识目录,你可能会发现卷序列号/ FileId组合足够。 您可以使用GetFileInformationByHandleEx
(尽管名称可以检索有关目录的信息)用FileInformationClass
(第二个参数)设置为FileIdInfo
来FileIdInfo
。
这对于NTFS来说是非常有用的。 正如你将在文档中看到的那样,对FAT文件系统的限制是非常重要的(尽管依赖于你的需要它仍然可以比没有好)。
维基百科:
索引节点(inode)是传统Unix风格文件系统(如UFS)上的数据结构。 inode存储有关常规文件,目录或其他文件系统对象的所有信息,但数据和名称除外。
Windows使用的文件系统并不是围绕inode概念构建的,它们是不同的,所以没有“inode number”来报告。
这里有一个清晰的解释链接: Inode解释