教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 高等教育 >

建立基于磁盘存储设备的FAT文件系统 - 图文(5)

来源:网络收集 时间:2026-09-23
导读: 具体解释如下: 【1】0x00~0x00:1个字节,如果该目录项正在使用中,则为文件名或子目录名的第一个字符。 ? 0x00:说明该目录项未被分配使用。 0xE5:说明该目录项曾经被使用过,但是现在已被删除。目前处于未分配

具体解释如下:

【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字,全部文档内容请下载后查看。喜欢就下载吧 ……

建立基于磁盘存储设备的FAT文件系统 - 图文(5).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/604186.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)