文件系统的更改(针对FAT32)(待续)

..文件系统的更改(针对FAT32)
1.对数据首扇区数,进行更改:如果文件系统刚格式完的话,数据首扇区为FirstDATASector,如果不是的话,

将用变量DatSecCur来存储录音文件数据的首扇区。由于文件是以簇为单位来存储的,当写完一个录音文件后,

DatSecCur要更新以备指向下一个录音的数据首扇区,方便下次写文件操作。而更新,

DatSecCur+=RecClusters*SectorsPerCluster。可以在写数据最后,更新变量。
2.对数据首簇数,进行更改:如果文件系统刚格式完的话,数据首簇为FirstDataCluster(其大小也是可以根据

你个人的设定,但是要大于或等于(DBR+保留扇区+FAT个数*每个FAT扇区数)),如果不是的话,将用变量

DatCluCur来存储录音数据的首簇。当数据不足一簇的话,也是使用一簇的大小的存储的。而更新的话,

DatCluCur+=RecClusters。可以在写数据簇号的最后,更新变量。(FAT32中缺少了DPT表,所以原来在FAT12/16

中的DPT表操作,在32中,就是对数据簇号的处理,系统中,连续的簇号优先处理)
3.对根目录,进行更改:根目录首扇区地址=FAT表首扇区+FAT个数*每个FAT扇区数。由于FAT32没有PDT,直接

在数据区开辟存储空间。如果刚格式完的话,写入第一个文件的目录时,就直接写在首扇区的地址0上,接下来

写文件目录的话,就要从地址32开始,要建个变量来存储地址和已写扇区个数,从而方便下次文件目录的建立

。一个文件的目录占用32个字节(这个是短文件目录,长文件目录就先不提了),由于一个扇区一般都512个字节

,所以一个扇区也只能建立16个目录而已,而一簇(8个扇区/簇)也才126个目录,远远不能满足需要,先开辟8

个簇来存储目录,这样的话,一张至少可以建立1024个目录。由于根目录是开辟在数据区,使数据首扇区(=根

目录首扇区+根目录的扇区数)往后推移,这个要在初始化时就确定的。
4.对FAT表,进行更改:参考数据簇的更改(其实数据簇和FAT表是一样的,只要一个就可以了,刚刚试过了)。

 

转:http://hi.baidu.com/stgokok168/blog/item/08ad9000ec76f10d1d9583a4.html

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值