我需要在Windows中找到目录的inode编号。使用_stat
和_stat64
函数,我可以获取文件的inode和其他信息。但是当我对Windows目录使用相同的内容时,它总是为任何目录提供相同的编号。
有没有办法找到Windows目录的inode编号?
答案 0 :(得分:4)
<强> st_ino中强>
文件的信息节点(inode)的编号 (UNIX特异性)。在UNIX文件系统上,inode描述该文件 日期和时间戳,权限和内容。当文件是 彼此紧密相连,他们共享同一个inode。 inode, 因此st_ino,在FAT,HPFS或NTFS文件中没有任何意义 系统强>
因此,不要依赖Windows系统上的inode编号。它是一个特定于Unix的概念。
请参阅此SO post,了解有关Windows如何管理没有inode但使用类似内容的文件的一些想法。
答案 1 :(得分:2)
Windows文件系统与大多数Unix文件系统中的inode编号没有直接的模拟关系。
如果您想要一些唯一且明确标识相关目录的内容,您可能会发现卷序列号/ FileId组合已足够。您可以使用GetFileInformationByHandleEx
(尽管名称可以检索有关目录的信息)检索这些内容,并将FileInformationClass
(第二个参数)设置为FileIdInfo
。
这对于NTFS大多数非常有用。正如您在文档中看到的那样,FAT文件系统的限制非常重要(尽管它仍然可以比没有更好,具体取决于您的需求)。
答案 2 :(得分:1)
来自维基百科:
索引节点(inode)是传统Unix风格文件系统(如UFS)上的数据结构。 inode存储有关常规文件,目录或其他文件系统对象的所有信息,但其数据和名称除外。
Windows使用的常用文件系统不是围绕inode构建的 概念,他们是不同的,所以没有“inode号”报告, 除其他事项外。
以下是一个明确解释的链接:Inode Explanation