建立基于磁盘存储设备的FAT文件系统 - 图文(5)
具体解释如下:
【1】0x00~0x00:1个字节,如果该目录项正在使用中,则为文件名或子目录名的第一个字符。 ?
0x00:说明该目录项未被分配使用。
0xE5:说明该目录项曾经被使用过,但是现在已被删除。目前处于未分配状态
【2】0x01~0x0A:10个字节,文件名的第2至第11个ASCII码,除扩展名外,如果文件的名字不足8个字符则用0x20进行填充。
【3】0x0B~0x0B:1个字节,所描述文件的属性 ? 0x01-只读 ? 0x02-隐藏 ? 0x04-系统文件 ? 0x08-卷标
0x0F-为此值时表示该目录项为长文件名目录项 ? 0x10-目录 ? 0x20-存档
【4】0x0C~0x0C:1字节,保留
【5】0x0D~0x0D:1个字节,文件穿件的时间,精确到创建时刻的十分之一秒 【6】0x0E~0x0F:2个字节,文件创建的时间——时分秒 两个字节的16bit被划分为3个部分: ?
0~4bit为秒,以2秒为单位,有效值为0~29,可以表示的时刻为0~58 ? 5~10bit为分,有效值为0~59 ? 11~15bit为时,有效值为0~23 下面举例说明:
如上图所示,其子目录项偏移0x0E~0x0F字节处的内容为“A1A9”,我们来计算一下。由于FAT文件系统数据采用的小端存储方式,因此“A1A9”表示成16进制为0xA9A1,换算成2进制就是1010 1001 1010 0001,我们将其分成三部分并计算它的值,如下图所示:
下面我们通过一个具体的实例来分析。首先我们在卷标为ycy的SD卡中再建立一个yatou.txt空的文本文件和一个写有数据的ycy.txt文本文件。即当前SD卡下只有三个文件:yatou(目录)、yatou.txt(空的文本文件)、ycy.txt(写有数据的文本文件)。如下图:
然后用winhex打开ycy,如下图所示:
具体分析如下:
第一个目录项描述的是卷标信息。我们从第二个目录项开始分析,它是ycy.txt的目录项。 ?
它的名字只有3个字符,因此共占用了偏移量0x00~0x02,非分配给文件名部分的0x03~0x0A字节用0x20进行填充。这里需要说明的一点是:如果文件名有汉字,则一个汉字占用两个字节。 ?
0x0B字节处的属性值为20,说明该文件时存档文件。
0x14~0x15字节处的簇号高两位为0x0000,0x1A~0x1B字节处的簇号低两位为0x0003,因此该文件起始于3号簇。
0x1C~0x1F字节处描述的是文件的大小,0x07C8,即1992字节,即1.94k,通过文件属性可知该值是正确。 5.长文件名目录项
FAT32文件系统在为文件分配短文件名目录项的同时会为其分配长文件名目录项。文件系统在为文件创建长文件名(Long File Name,LFN)类型的目录项时,并没有舍弃原有的短文件名目录项,具有LFN的文件同时也有一个常规的SFN(Short File Name,短文件名)类型目录项。之所以仍然需要SFN,是因为LFN目录项只包含文件的名字,而不包括任何有关时间、大小及起始簇号等信息,这些信息仍然需要用SFN目录项来记录。 6.长文件名目录项特性
如果一个文件的文件名超过了8个字符,则会为其名字截短后为其建立短文件名。将短文件名存储在短文件名目录项中。长文件名则存放在长文件名目录项中。长文件名目录项有以下的特性:
? a.LFN和SFN目录项结构在相同位置有一个属性标志字节,LFN目录项使用一个特定的属性值,以说明它是一个长文件名项。
? b.项中的其他字节,使用UTF-16编码(UTF-16是Unicode的其中一个使用方式。 UTF是 Unicode/UCS Transformation Format,即把Unicode转做某种格式的意思),存储13个Unicode字符的文件名,每个字符占用两个字节。 ?
c. 如果文件名长于13个字符,则继续为其分配LFN项,知道够用为止。 ?
d.所有LFN都包含一个校验和,通过这个校验和将其与相应的SFN项关联起来。 ? e.一个文件的所有LFN项按倒序排列在它的SFN项前面,即文件名的第一部分距离SFN是最近的。
7.长文件名目录项数据结构
详细解释如下:
【1】0x00~0x00:1个字节,长文件名目录项的序列号,一个文件的第一个长文件名序列号为1,然后依次递增。如果是该文件的最后一个长文件名目录项,则将该目录项的序号与0x40进行“或(OR)运算”的结果写入该位置。如果该长文件名目录项对应的文件或子目录被
删除,则将该字节设置成删除标志0xE5。
【2】0x01~0x0A:5个字节,长文件名的第1~5个字符。长文件名使用Unicode码,每个字符需要两个字节的空间。如果文件名结束但还有未使用的字节,则会在文件名后先填充两个字节的“00”,然后开始使用0xFF填充。
【3】0x0B~0x0B:1个字节,长目录项的属性标志,一定是0x0F。 【4】0x0C~0x0C:保留。
【5】0x0D~0x0D:1个字节,校验和。如果一个文件的长文件名需要几个长文件名目录项进行存储,则这些长文件名目录项具有相同的校验和。
【6】0x0E~0x19:12个字节,文件名的第6~11个字符,未使用的字节用0xFF填充。 【7】0x1A~0x1B:2个字节,保留。
【8】0x1C~0x1F:4个字节,文件名的第12~13个字符,未使用的字节用0xFF填充。 8.长文件名目录项实例分析 …… 此处隐藏:624字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [高等教育]公司协助某村精准扶贫工作总结.doc
- [高等教育]高二生物知识点总结(全)
- [高等教育]苏教版数学三年级下册《解决问题的策略
- [高等教育]仪器分析课程学习心得
- [高等教育]2017年五邑大学数学与计算科学学院333
- [高等教育]人教版七年级下册语文第四单元测试题(
- [高等教育]2018年秋七年级英语上册Unit7Howmuchar
- [高等教育]2017年八年级下数学教学工作小结
- [高等教育]湖南省怀化市2019届高三统一模拟考试(
- [高等教育]四年级下册科学_基础训练及答案教材
- [高等教育]城郊煤矿西风井管路伸缩器更换施工安全
- [高等教育]昆八中20182019学年度上学期期末考试
- [高等教育]项目部各类人员任命书
- [高等教育]上市公司经营水务产业的模式
- [高等教育]人教版高二化学第一学期第三章水溶液中
- [高等教育]【中考物理第一轮复习资料】四.压强与
- [高等教育]金坑水电站报废改建工程机电设备更新改
- [高等教育]高中生物教学工作计划简易版
- [高等教育]2017年西华大学攀枝花学院(联合办学)44
- [高等教育]最新整理超短爆笑英文小笑话大全
- 优秀教师继续教育学习心得体会
- 阳历到阴历的转换
- 留守儿童教育案例分析
- 华师17春秋学期《玩教具制作与环境布置
- 测速传感器新型安装装置的现场应用
- 人教版小学数学三年级下册第四单元
- 创业个人意向书
- 山东省潍坊市2012年高考仿真试题(三)
- [恒心][好卷速递]四川省成都外国语学校
- 多少人错把好转反应当成了病情加重处理
- 中外广播电视史复习资料整理
- 江苏省扬州市江都区宜陵镇中学2014-201
- 工程造价专业毕业实习报告
- 广西师范学院心理与教育统计
- aympkrq基于 - asp的博客网站设计与开
- 建筑业外出经营相关流程操作(营改增后
- 人治 德治 法治
- [精华篇]常识判断专项训练题库
- 中国共产党为什么要实行民主集中
- 小学数学第三册第一单元试卷(A、B、C




