【问题标题】:Do directories in Windows have an inode number?Windows 中的目录是否有 inode 编号?
【发布时间】:2012-05-17 16:14:38
【问题描述】:

我需要在 Windows 中找到一个目录的 inode 号。使用_stat_stat64 函数,我可以获得文件的inode 和其他信息。但是当我对 Windows 目录使用相同的编号时,它总是为任何目录提供相同的编号。

有什么方法可以找到 Windows 目录的 inode 号吗?

【问题讨论】:

    标签: c windows inode


    【解决方案1】:

    来自windows stat docs

    st_ino

    文件的信息节点(inode)编号 (特定于 UNIX)。在 UNIX 文件系统上,inode 描述文件 日期和时间戳、权限和内容。当文件 它们彼此硬链接,它们共享相同的 inode。 索引节点, 因此 st_ino 在 FAT、HPFS 或 NTFS 文件中没有任何意义 系统。

    因此,不要依赖 Windows 系统上的 inode 编号。它是一个 Unix 特定的概念。

    请参阅此SO post,了解有关 Windows 如何在没有 inode 但使用类似的东西的情况下管理文件的一些想法。

    【讨论】:

      【解决方案2】:

      Windows 文件系统没有直接模拟大多数 Unix 文件系统中的 inode 编号。

      如果您想要唯一且明确地标识相关目录的内容,您可能会发现卷序列号/FileId 组合就足够了。您可以通过将FileInformationClass(第二个参数)设置为FileIdInfoGetFileInformationByHandleEx(尽管有名称,但可以检索有关目录的信息)来检索这些。

      大部分对 NTFS 很有用。正如您将在文档中看到的那样,FAT 文件系统的限制非常重要(尽管根据您的需要,它仍然总比没有好)。

      【讨论】:

        【解决方案3】:

        来自维基百科:

        索引节点(inode)是传统 Unix 风格文件系统(如 UFS)上的数据结构。 inode 存储有关常规文件、目录或其他文件系统对象的所有信息,但其数据和名称除外。

        Windows 使用的常用文件系统不是围绕 inode 构建的 概念,它们是不同的,所以没有“inode number”要报告, 除其他事项外。

        这里有一个解释清楚的链接:Inode Explanation

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-01-02
          • 2012-04-15
          • 2020-04-27
          • 1970-01-01
          • 2011-05-13
          • 2014-07-27
          • 2011-01-10
          • 1970-01-01
          相关资源
          最近更新 更多