..文件系统的更改(针对FAT32) 将用变量DatSecCur来存储录音文件数据的首扇区。由于文件是以簇为单位来存储的,当写完一个录音文件后, DatSecCur要更新以备指向下一个录音的数据首扇区,方便下次写文件操作。而更新, DatSecCur+=RecClusters*SectorsPerCluster。可以在写数据最后,更新变量。 你个人的设定,但是要大于或等于(DBR+保留扇区+FAT个数*每个FAT扇区数)),如果不是的话,将用变量 DatCluCur来存储录音数据的首簇。当数据不足一簇的话,也是使用一簇的大小的存储的。而更新的话, DatCluCur+=RecClusters。可以在写数据簇号的最后,更新变量。(FAT32中缺少了DPT表,所以原来在FAT12/16 中的DPT表操作,在32中,就是对数据簇号的处理,系统中,连续的簇号优先处理) 在数据区开辟存储空间。如果刚格式完的话,写入第一个文件的目录时,就直接写在首扇区的地址0上,接下来 写文件目录的话,就要从地址32开始,要建个变量来存储地址和已写扇区个数,从而方便下次文件目录的建立 。一个文件的目录占用32个字节(这个是短文件目录,长文件目录就先不提了),由于一个扇区一般都512个字节 ,所以一个扇区也只能建立16个目录而已,而一簇(8个扇区/簇)也才126个目录,远远不能满足需要,先开辟8 个簇来存储目录,这样的话,一张至少可以建立1024个目录。由于根目录是开辟在数据区,使数据首扇区(=根 目录首扇区+根目录的扇区数)往后推移,这个要在初始化时就确定的。 |
转:http://hi.baidu.com/stgokok168/blog/item/08ad9000ec76f10d1d9583a4.html