fat16的fdt说明

本文详细介绍了FAT16文件系统的文件目录表(FDT),包括根目录的容量、目录条信息的结构,以及文件名、扩展名、文件属性、时间戳等关键字段的解析。此外,还探讨了长文件名的存储方式和短文件名的处理原则,并解释了如何根据目录条信息定位和查看文件内容。

FDT:File Directory Table,文件目录表。
通过BPB分析可知,根目录可存放512条目录信息。根据FAT16文件系统规定,每个目录条信息大小为32字节,即根目录占用32个扇区,16KB空间。

根目录中仅存储进入该磁盘卷后,看到的所有文件和文件夹的目录条信息。
对于根目录文件夹下的子文件夹和文件,均存储在数据区。

每个目录条为32字节表示。含义如下:
在这里插入图片描述
文件名
上表中8(主文件名)+3(扩展名)表示文件名,这种格式为短文件名格式。
扩展名若没有,则用空格填充。

文件属性
文件属性表示的方法是按二进制位定义,最高两位保留未用。

文件时间
0x0D偏移量的字段为文件创建时间精确到10ms的值。例如:如果值为86H,十进制为134,所以文件创建的时间为1340ms,即1.34s。

0x0E~0x0F偏移量字段表示文件创建时间,定义如下:
0-4位,这5位记录秒的值,单位是2s,也就是把这四位的值乘以2,才是秒的值,其取值范围为0-29。
5-10位,这6位记录分的值,其取值范围为0-59。
11-15位,这5位记录时的值,其取值范围为0-23。
计算出来的值再加上1340ms。才是文件最终的创建时间。

0x10~0x11偏移量字段表示文件创建日期,定义如下:
0-4位,这5位记录日的值,其取值范围为0-31。
5-8位,这4位记录月的值,其取值范围为0-12。
9-15位,这7位记录年的值,其取值相对于1980年开始计数的,其值必须加上1980。

文件最近访问日期:同文件创建日期算法一样。
文件修改时间:同文件创建时间算法一样。
文件修改日期:同文件创建日期算法一样。

文件位置
0x1A~0x1B偏移量字段表示文件位置,即蔟号。注意数据区起始蔟号为2号蔟。

文件大小
0x1C~0x1F偏移量字段表示文件,单位为字节。

重要字段:文件名、扩展名、文件属性、文件首蔟号、文件长度。

长文件名
如果文件名超过8字节,系统根据文件名的长度,分配多个32字节的目录项用于保存长文件名,格式如下:
在这里插入图片描述
注意:长文件名中文件名的表示每个字符用两个字节表示。

为了兼容DOS与Winddows 3.x在Winddows 95以上的系统中,超过8.3格式的文件或目录实际存储着两个名字,一个短文件名和一个长文件名。当创建一个长文件名时,其对应的短文件名的处理有以下三个原则:
A:系统取长文件名的前6个字符加上“~1”,形成短文件名,其扩展名保持不变;
B:如果已经存在这个名字的文件,数字自动加1,如“~2”;
C:如果有DOS与Winddows 3.x的非法字符,以“_”替代。
例如新建一个名为+++的文件夹:
在这里插入图片描述
这里可以看出,文件名为1.txt,文件存储的蔟号为0、长度为0,说明1.txt中为空。
在这里插入图片描述

长文件名文件:
在这里插入图片描述
这里可以看出,文件名为0123456789.txt,占用了三个目录条。文件存储的蔟号为0、长度为0,说明0123456789.txt中为空。

长文件名文件:
在这里插入图片描述
43表示结束,序号为3。
这里可以看出,文件名为111111111111111111111111111111.txt文件,占用3个目录条。文件存储蔟号为第8蔟,文件大小为3字节。

短文件夹文件:
在这里插入图片描述
这里可以看出,文件夹名为2,存储蔟号为0,大小为0,表示为空文件夹。

长文件夹文件:
在这里插入图片描述
这里可以看出,文件夹名为33333333333333333,占用3个目录条。存储蔟号为0,大小为0,表示为空文件夹。

111.txt文件定位和查看:
在这里插入图片描述
根目录在24号扇区,根目录占用32个扇区,即24-55号扇区。
则数据区从56号扇区开始,数据区的起始扇区位于2号簇。
根据111.txt的目录条信息可知:111.txt文件位于6号簇,大小为1字节。
56号扇区为第2号簇,每个簇占8个扇区。
111.txt文件位于第56+(6-2)*8=88号扇区。
跳转到88号扇区即可查看111.txt的文件内容。

子目录定位和查看:
在这里插入图片描述
".“和”…"目录:
在子目录所在的文件目录项区域中,总有两个特殊的目录,“.”目录项和“…”目录项可以用DOS命令的DIR查看到。说明:
A:“.”目录项所描述的起始簇号,是子目录本身所在簇号;
B:“…”目录项所描述的起始簇号,是上一级目录的起始簇号,如果上级目录为根目录,则起始簇号被设置为0;
C:这两个目录都大小被设置0,同其他的文件夹目录项一样。
系统利用“.”目录项(当前目录)和“…”目录项实现目录之间的双向联系,从而把整个文件系统联系在一起。

文件删除:删除文件或目录。
(i)短文件名的占的目录项第1个字节被改写成E5H。
(ii)长文件名占的目录项第1个字节也被改写成E5H。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值