【问题标题】:how to differentiate between folder and file with NTFS如何使用 NTFS 区分文件夹和文件
【发布时间】:2011-08-20 07:19:27
【问题描述】:

我知道如果 1 出现在属性二进制表示的第 4 位,那么这是一个目录,但我不确定该位置是否不存在 1,我应该将其视为文件吗?

或者是否存在任何其他属性来确定文件夹或文件? 请帮帮我。

谢谢。

【问题讨论】:

  • 文件和文件夹的区别到底是什么?! NTFS 是文件系统,而不是编程语言...
  • 我们有一个索引器,它使用 NTFS 标准在数据库中执行和存储文件或目录的所有属性,现在我想从数据库中分别获取所有目录和所有文件。

标签: ntfs


【解决方案1】:

每个文件在卷的主文件表 (MFT) 中都有一个文件记录。

您可以检查存储在 0x16 和 0x17 的 2 字节标志(注意,小端)。第二位(从右数)告诉它是文件夹(1)还是文件(0)。

if (flag & 0x02)
    it's a folder
else
    it's a file

如果你将这个原本代表文件的位强制更改为 1,例如在 WinHex 的帮助下,并且(可能需要重新启动或系统缓存刷新)双击它,操作系统会报告该文件是损坏。

另外,第一位告诉它是否被删除。

if (flag & 0x01)
    it's a normal file or folder not deleted
else
    it's a deleted file or folder

【讨论】:

    猜你喜欢
    • 2010-10-28
    • 2012-11-10
    • 2015-02-06
    • 1970-01-01
    • 2014-01-18
    • 2011-03-10
    • 2015-08-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多