我通过开发板往SD卡内写入了一个文本文件。我程序的做法是做样的: 1、在FAT1中寻找一空闲簇(00 00 00 00),记下簇号cluster_no 2、在cluster_no对应的簇写入一些文本数据,不超过一簇大小,同时结尾写上了0D 0A 3、在第2簇的根目录扇区中找到一个没用目录项(00开头),填入文件的信息:括文件名(WIC),扩展名(TXT),首簇号,大小(24字节),还有日期时间。 4、FAT1中这个cluster_no对应的簇号中填入0x0fffffff(因为数据不超过一簇),同时更新FAT2。 实验结果确实能往格式化为FAT32的SD卡中写入一个文件,在windowXP下,在这个卡的根目录下确实看到了这个文件,但是右键属性一看,这个文件大小为0字节,创建、修改等时间都是0。双击打开这个.txt文件显示没有东西。 我用winhex读这个卡上的内容,发现FAT区和文件的根目录项都按照上面填写正确,这个文件对应的簇有我写入的内容。 但为什么双击打开就是没内容?想了两天想不出所以然来,请高人指点一二,谢谢! |