阅读:1095回复:0
FAT表问题
各位大侠,请教一下:
我在读取U盘中的某一个文件时,采用了如下思路: (1)首先从根目录区找到文件首簇号和大小; (2)读取文件首簇数据; (3)如果文件不止一簇,则将首簇号对应的FAT表一个扇区读入内存(因为我片内RAM太小,所以没法将FAT表一次性全部读入内存); (4)将首簇号对应的FAT表中的值读出,作为文件下一簇号码; (5)读取该簇数据; (6)重复3~5 (7)如果某簇对应的FAT值 > = 0xfff8,则结束读取 我在实验中发现,第(4)步中读到的值很大,超过了U盘数据簇总数。感觉非常奇怪。 文件系统是FAT16,读出的FAT值我认为是高8位在后。低8位在前。例如连续两个字节是20h ,05h,那么计算出的簇号为0520h。 难道我的思路有错?请高手指点一下! |
|