原创 FAT32的目录项结构

2010-12-1 10:45 4515 2 4 分类: MCU/ 嵌入式

(1) 0-- 7字节 文件正名。
(2) 8--10字节 文件扩展名。
(3) 11字节 文件属性,按二进制位定义,最高两位保留未用,0至5位分别是只读位、隐藏位、系统位、卷标位、子目录位、归档位。
(4) 11--13字节 仅长文件名目录项用,用来存储其对应的短文件名目录项的文件名字节校验和等。
(5) 13--15字节 24位二进制的文件建立时间,其中的高5位为小时,次6位为分钟。
(6) 16--17字节 16位二进制的文件建立日期,其中的高7位为相对于1980年的年份值,次4位为月份,后5位为月内日期。
(7) 18--19字节 16位二进制的文件最新访问日期,定义同(6)。
(8) 20--21字节 起始簇号的高16位。
(9) 22--23字节 16位二进制的文件最新修改时间,其中的高5位为小时,次6位为分钟,后5位的二倍为秒数。
(10)24--25字节 16位二进制的文件最新修改日期,定义同(6)。
(11)26--27字节 起始簇号的低16位。
(12)28--31字节 32位的文件字节长度

PARTNER CONTENT

文章评论2条评论)

登录后参与讨论

用户316955 2010-12-2 11:37

长文件名目录项中校验码算法,参数为长文件名生成的短文件名 unsigned char ChkSum (unsigned char *pFcbName) { short FcbNameLen; unsigned char Sum; Sum = 0; for (FcbNameLen=11; FcbNameLen!=0; FcbNameLen--) { // NOTE: The operation is an unsigned char rotate right Sum = ((Sum & 1) ? 0x80 : 0) + (Sum >> 1) + *pFcbName++; } return (Sum); }

用户316955 2010-12-1 14:37

长文件名目录项也是32字节,当一个文件的文件名长于8+3结构时,首先取文件名的前六个字母的大写加上“~”字符,再加一个数字的ASCII码来表示。而文件名的内容被分配在其前的一些目录项中,这些目录项称为长目录项。在长目录项中,第一字节的低五位表示编号,由于没有编号0,因而最多只有31个,bit6为1时表示最后一个长目录项。编号是按倒序排列的。第11字节的属性项仍然是属性,长目录项中固定为0x0f,第12字节,第27字节以及第28字节固定为0,第13字节为短文件名的较验(目前还不清楚是怎样运算的),其余空间每2个字节表示一个Unicode字符,哪怕是英文字符,故一个长目录项最多只能保存13个字符。
相关推荐阅读
用户316955 2010-11-29 13:56
HcControl Register
The HcControl register defines the operating modes for the Host Controller.  Most of the fields in t...
用户316955 2010-11-29 13:54
HcInterruptEnable Register
Each enable bit in the HcInterruptEnable register corresponds to an associated interrupt bit in the ...
用户316955 2010-11-29 13:53
HcInterruptStatus Register
This register provides status on various events that cause hardware interrupts.  When an event occur...
用户316955 2010-11-29 13:52
HcCommandStatus Register
The HcCommandStatus register is used by the Host Controller to receive commands issued by the Host C...
用户316955 2010-11-26 14:44
最小二乘法实现
unsigned char zxechf(double x[],double y[],unsigned char n,double *a,double *b){    double A=0.0,B=0...
EE直播间
更多
我要评论
2
2
关闭 站长推荐上一条 /3 下一条