astrostar
驱动牛犊
驱动牛犊
  • 注册日期2003-10-29
  • 最后登录2005-11-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1095回复:0

FAT表问题

楼主#
更多 发布于:2004-02-17 21:16
各位大侠,请教一下:
我在读取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。

难道我的思路有错?请高手指点一下!
游客

返回顶部