Windows 也像 Linux 一样有 Inode 编号吗?

发布于 2024-12-01 09:02:47 字数 55 浏览 1 评论 0原文

Windows 也像 Linux 一样有 Inode 编号吗? Windows内部如何管理文件?

Does Windows have Inode Numbers like Linux? How does Windows internally manage files?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

近箐 2024-12-08 09:02:47

使用的术语与您在 Unix 世界中找到的术语有点不同,但是就拥有唯一标识文件的整数而言,NTFS 和某些 Windows API 公开了类似的“文件 ID”概念。

您可以通过 < 查询打开句柄的文件 ID代码>GetFileInformationByHandle。参见nFileIndexHigh、nFileIndexLow;这分别是文件 ID 的高位和低位部分,文件 ID 为 64 位。

NtCreateFile还可以通过文件 ID 打开文件。请参阅 FILE_OPEN_BY_FILE_ID 标志。您需要一个卷句柄才能通过文件 ID 打开。

The terminology used is a bit different from what you'd find in the Unix world, however in terms of having an integer that uniquely identifies a file, NTFS and some Windows API expose the concept of "file IDs" which is similar.

You can query the file ID of an open handle via GetFileInformationByHandle. See nFileIndexHigh, nFileIndexLow; this is the high and low parts respectively of the file ID which is 64 bits.

NtCreateFile can also open a file by its ID. See the FILE_OPEN_BY_FILE_ID flag. You need a volume handle to open by file ID.

虐人心 2024-12-08 09:02:47

Windows 有“FileId”

是的,确实如此。通常称为FileId(又名文件ID、又名FileID)。在 Win8 命令 shell 中尝试一下:

C:\>fsutil file | findstr /I fileid
queryFileID              Queries the file ID of the specified file

C:\>fsutil file queryFileID
Usage : fsutil file queryFileID <filename>
   Eg : fsutil file queryFileID C:\testfile.txt

参考:

Windows has "FileId"

Yes, it does. Generally called FileId (AKA file ID, AKA FileID). Try this in a Win8 command shell:

C:\>fsutil file | findstr /I fileid
queryFileID              Queries the file ID of the specified file

C:\>fsutil file queryFileID
Usage : fsutil file queryFileID <filename>
   Eg : fsutil file queryFileID C:\testfile.txt

Reference:

感情洁癖 2024-12-08 09:02:47

是的。 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

Yes. NTFS uses a B-Tree indexing system. Every file in the MFT has a 64 bit File Index Number. This number, called the File ID, uniquely identifies the file ONLY WITHIN ITS VOLUME. I.e., two files on two separate volumes on the same PC may have the same File ID. See this MSDN article for more details.

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

regarding your second question, "how does windows internally manage files", see this technet article:

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

灯角 2024-12-08 09:02:47

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

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

为了进一步简化答案

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

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

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

There are two things here. The term INode, and a file-system implementation that uses either INode terminology or something like INode in its place.

All Windows file-systems(FAT*,NTFS) I know of, use Inode-like structures in actual implementation.

To further simplify the answer

(Think of INode as a block of metadata about a file.)

INode as term : No windows file system dont have it.

INode as concept : Windows will have some other structures, similar in property and usage but used with different name

吐个泡泡 2024-12-08 09:02:47

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

http://pcnineoneone.com/howto/filesystems1/ 对 FAT 和 NTFS 有很好的描述,这是 Windows 中两种流行的文件系统。

This question is more about filesystems than a particular OS I believe. Each filesystem handles files differently (and each OS can support multiple filesystems).

http://pcnineoneone.com/howto/filesystems1/ has a pretty good writeup on FAT and NTFS, which are two popular filesystems with windows.

Hello爱情风 2024-12-08 09:02:47

索引节点是一个 POSIX 概念。现代 Windows 版本使用 NTFS。 NTFS 的深入描述:NTFS 内部

Inodes are a POSIX concept. Modern Windows versions use NTFS. An in-depth description of NTFS: Inside NTFS

戈亓 2024-12-08 09:02:47

不。NTFS 中没有与 inode 等效的东西。 Inode 是基于 **IX 的文件系统。

但是,NTFS 为每个文件存储了唯一的 8 字节参考号。

如果您想了解更多详细信息,请评论。

No. There is no equivalent to inodes in NTFS. Inode is with **IX based file systems.

But yes, NTFS stores a unique 8-byte reference number for each file.

Comment if you want to know more details.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文