阅读:1060回复:2
U盘文件的问题
在U盘文件开发中,定位到DBR表后,就可以计算出相应的文件绝对Sector。如:
FatStartSector=StartSector+BPB_RsvdSecCn; //FAT的起始绝对Sector:相当于跨过保留的Sector RootStartSector=FatStartSector+(BPB_FATSz16*2); //Root起始绝对Sector:相当于从FatStartSector后,再跨过两个FAT表 //数据区:根目录+(32×根目录中目录项数)/ 每扇区字节数 FirstDataSector=RootStartSector+(BPB_RootEntCnt*32+(BPB_BytesPerSec-1))/BPB_BytesPerSec; 我们现在的问题是:如果FAT表到DATA表之间,如果存在坏区,则上述计算如何避免? |
|
沙发#
发布于:2004-04-03 13:13
在U盘文件开发中,定位到DBR表后,就可以计算出相应的文件绝对Sector。如:
///***************************************************** FatStartSector=StartSector+BPB_RsvdSecCn; //FAT的起始绝对Sector:相当于跨过保留的Sector RootStartSector=FatStartSector+(BPB_FATSz16*2); //Root起始绝对Sector:相当于从FatStartSector后,再跨过两个FAT表 //数据区:根目录+(32×根目录中目录项数)/ 每扇区字节数 FirstDataSector=RootStartSector+(BPB_RootEntCnt*32+(BPB_BytesPerSec-1))/BPB_BytesPerSec; 我们现在的问题是:如果FAT表到DATA表之间,如果存在坏区,则上述计算如何避免? //******************************************************* 计算公式是不变的,如果存在坏区,就用一个好的块替换本块。这样从FAT到DATA就不存在坏区。 |
|
板凳#
发布于:2004-04-03 13:25
楼上的兄弟!怎么替代啊!
|
|
|