关于实现文件在NTFS中的绝对定位,我们需要了解NTFS文件系统的2个主要结构: DBR与MFT,关于DBR,和FAT32一样,通常为0号逻辑扇区,为引导扇区,如果您对DBR不明白,请参考相关资料。关于MFT,是NTFS文件系统的”特有专利”,NTFS文件系统中的所有目录与文件,都会形成一个或多个MFT(不知道这算不算多个MFT,时间有点长了..但是在文件定位中,基本不可能出现一个目录多个MFT的情况),一个MFT占2个扇区.
![]()
如果您对MFT不明白,请参考相关资料,网上讲解MFT的资料很多,google一下,比我权威多了,所以定位NTFS的文件,就是找到这个文件的MFT的首扇区,再根据MFT的参数,找到这个文件DATA区的详细地址(这部分您可以去阅读MFT的相关参数,这里不详细介绍)。
好,现在进入正题,因为每个目录都有一个MFT,而子目录的MFT的首地址正是根据他的父目录的MFT来定位的,所以NTFS的文件系统中MFT正好形成了一棵树(是不是和FDT差不多,但是复杂多了),所以大家可以想到,要定位树上叶子的位置,你必须知道ROOT(根)的位置吧,自然而然,我们就必须得到根目录的MFT的首扇子区号。大家看到这里,想必都MFT有个大概的了解了吧,通过查阅MFT的相关资料,我们可以得知:5号MFT,遍是根目录的MFT区!!那么如何得到5号MFT的首扇区号呢.?我们可以通过DBR,通过DBR的参数(具体请自己查阅)我们可以获得0号MFT的首簇号,因为一个MFT占用2个扇区,我们可以轻松得知5号MFT的首扇区号(这个都不会算的话,那我也没办<
留言区(共0条)