求助,FAT16中根目录下的文件地址计算
发布: 2009-11-30 21:21 | 作者: l404807906 | 来源: StmFans思蜕盟 OPELC 自由电子联盟
ClusterNum =((SectorBuff[i+0x15]<<24)+(SectorBuff[i+0x14]<<16)+(SectorBuff[i+0x1B]<<8)+(SectorBuff[i+0x1A]));
File_Addr = Root_Addr +(DirSecNum +(ClusterNum -2)*SecPerClus)*512;
程序中涉及到的数组元素值是从根目录下读取的,14.15分别是簇的高八位,0x1A.OX1B是簇号的低八位;这里经过移位处理后,ClusterNum 是4个字节了,但是据我了解,FAT16中的簇号是和FAT表中的两个字节对应,这点很难理解啊。此外关于文件地址的计算也是不明白的很,希望能够得到大家的帮助。
File_Addr = Root_Addr +(DirSecNum +(ClusterNum -2)*SecPerClus)*512;
程序中涉及到的数组元素值是从根目录下读取的,14.15分别是簇的高八位,0x1A.OX1B是簇号的低八位;这里经过移位处理后,ClusterNum 是4个字节了,但是据我了解,FAT16中的簇号是和FAT表中的两个字节对应,这点很难理解啊。此外关于文件地址的计算也是不明白的很,希望能够得到大家的帮助。
Files.rar
(2009-11-30 21:21:49, Size: 2.39 KB, Downloads: 0)
