开发者

how to differentiate between folder and file with NTFS

i know that if 1 is present at the 4th position of binary representation of attribute then this is a directory, but i am not sure if 1 is not present at that location should i consider it as a file?

or is there any other attribute present to determine folder or file ? please hel开发者_C百科p me.

Thanks.


Every file has a File Record in Master File Table (MFT) of the volume.

You can check the 2-byte flag stored at 0x16 and 0x17(attention, little endian). The second bit (counting from right) tells whether it's a folder(1), or a file(0).

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

If you change this bit that would originally represent a file to 1 by force, for example with the help of WinHex, and (probably a restart or system cache fresh is needed) double click it, OS would report that the file is corrupted.

In addition, the first bit tells if it is deleted.

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜