2011-05-06 65 views
0

我知道如果1出现在属性的二进制表示的第4个位置,那么这是一个目录,但我不确定1是否不在该位置应该考虑它作为一个文件?如何与NTFS区分文件夹和文件

还是有任何其他属性目前来确定文件夹或文件? 请帮助我。

谢谢。

+0

区分文件和文件夹到底是什么?! NTFS是一个文件系统,而不是一种编程语言... – 2011-05-06 15:47:34

+0

我们有索引器,它使用NTFS标准执行和存储文件或目录的所有属性在数据库中,现在从数据库我想获取所有目录和所有文件分别。 – 2011-05-06 16:01:14

回答

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