加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

FDT表的结构

(2012-02-21 13:40:49)
标签:

sd卡

fat32

分类: 学习
FDTFile Directory Table)表即为文件目录表,也称为根目录区或ROOT区。用格式化命令(FORMAT)对硬盘(或逻辑盘)进行格式化的时候,就已经为整个硬盘建立了一个根目录FDTFDT位于第二个FAT表之后,只有当FAT表不能定位文件在硬盘中的位置时,FAT才需和FDT配合以便能准确定位文件的位置。
在硬盘根目录下,用户可以再创建不同的子目录,以及子目录下的子目录。当然,根目录以及各级子目录也都有自己的FDT
根目录的作用是分配根目录下的所有文件和子目录的存储空间(逻辑扇区号),并通过设备驱动程序接口确定有效的最大目录项。
根目录下的所有文件及其子目录在根目录的文件目录表(FDT)中都有一个目录登记项(简称为目录项)。每个目录登记项占用32个字节,分为8个区域,提供有关文件或子目录的信息。其中包括了操作系统的系统文件(IO.SYSMSDOS.SYSCOMMAND.
COM
)的目录项。

1FAT16根目录中的FDT结构
在硬盘中,各逻辑盘的根FDT的起始逻辑扇区由分区容量确定。在FAT16分区格式中,FDT表的长度为32个扇区(256个表项),每个目录项为32个字节,最多保存512个文件或子目录。如果支持长文件名,则每个表项为64个字节,其中,前32个字节为长文件链接说明;后32个字节为文件属性说明,包括文件长度、起始地址、日期、时间等。如不支持长文件名,则每个表项为32个字节的属性说明,其具体内容与含义如表2-6所示。
2-6
FAT16
分区格式下FDT表的内容与含义

 

 

字节位置

 

内容与含义

07字节
表示文件名
810字节
表示文件的扩展名
11字节
表示文件属性
其中00H为读写,01H为只读,02H为隐藏,04H为系统,08H为卷标,10H为子目录,20H为归档(只要完成了写操作并已关闭,则该位置就置为1
1221字节
保留未用
2223字节
表示文件的创建时间
2425字节
表示文件的创建日期
2627字节
表示文件的起始簇号(首簇号)
2831字节
表示文件的字节数

FAT16分区格式对每个文件来说其数据结构是一个单向簇链表,而每个文件在文件目录表FDT中占一个文件目录项,每个文件的首簇号就存放在该文件的目录项中,一个文件目录项占32个字节。FDT中一个文件目录项的几个参数值的说明如下。
·
文件名FAT16分区格式中,FDT的文件目录项中第07字节为文件名(若有剩余字节则用空白符20H填充)。其中,第1字节又表明了该文件的状态,它的取值方式有3种,第一种为00H,表示目录项的空表项(即未使用的目录项);第二种为E5H,表示该目录项曾经使用过,但文件已被删除;第三种为其他任何合法字符,表示一个文件名(或子目录名)的第一个字符的ASCII码值,如果是子目录下的两个特殊文件“.”或“..”目录项,其ASCII码为2EH2E2EH

·
知识提示:.”表示当前子目录,“..”表示上一级目录。它们同其他子目录一样没有长度。其中“.”项所报告的首簇号是子目录本身的起始簇号;“..”项所报告的首簇号是上一级目录的起始簇号。若上一级目录是根目录,则该簇号值将被置为0。系统利用此结构来实现目录之间的双向联系,从而将整个文件系统联系在一起。

·
文件属性:第11字节为文件属性字节,该字节中各位的内容如表2-7所示。

2-7 11字节的位与内容

 


 

B7

 

B6

 

B5

 

B4

 

B3

 

B2

 

B1

 

B0

 

内容

 

未用

 

未用

 

归档

 

子目录

 

卷标

 

系统

 

隐藏

 

只读


·
文件创建(修改)时间:其中第22字节(04位)表示以2秒为增量的二进制数;第23字节(02位)与第22字节(57位)为分钟;第23字节(37位)为小时。

·
文件创建(修改)日期:其中第24字节(04位)为日期131;第25字节(0位)与第24字节(57位)为月份112;第25字节(17位)为年份0119(即19802099年)。

·
文件首簇号:第26和第27字节存放该文件的首簇号,系统根据这两个字节中的值乘以2得到它在FAT中该文件的单向链表的首表项,再通过FAT即可找到文件的全部内容。

·
注意:这里要注意区分FDTFDT中的目录登记项这两个概念。目录登记项是一个32字节长的数据块,它记录了一个文件或子目录的有关信息;FDT是由若干目录登记项组成的一个表。

2FAT32根目录中的FDT结构
FAT32分区格式下,根目录区不再具有固定区域、固定大小,它可看作是数据区的一部分,这是因为根目录已改为根目录文件,采用与子目录文件相同的管理方式,通常情况下从第2簇开始使用,其大小视存储文件的需要而增加。鉴于这种情况,根目录下的文件数目将突破512个的限制。但每个目录项还是为32个字节,可以是文件目录项、子目录项、卷标项(仅根目录有)、已删除目录项、长文件名目录项等,其具体内容与含义如表2-8所示。
2-8
FAT32
分区格式下FDT表的内容与含义

 

 

 

内容与含义

07字节
表示文件名
810字节
表示文件的扩展名
11字节
表示文件属性
1213字节
仅长文件名目录项用,存储其对应的短文件名目录字节校验和等
1415字节
24位二进制文件建立时间
1617字节
16位二进制文件建立日期
1819字节
16位二进制文件最新访问日期
2021字节
文件首簇号的高16
2223字节
16位二进制文件最新修改时间
2425字节
16位二进制文件最新修改日期
2627字节
文件首簇号的低16
2831字节
32位文件的字节长度

FAT32分区格式的FDT中一个文件目录项的几个参数值的说明如下。
·
文件属性:第11字节同样为文件属性字节,它按二进制位定义,最高两位保留未用,05位分别为只读位、隐藏位、系统位、卷标位、子目录位与归档位;当只读位、隐藏位、系统位、卷标位全为1,其他位全为0,即11字节为0FH时表示该项为长文件名记录项。

·
文件创建时间:即第1415字节,其中高5位为小时,次6位为分钟,再次5位为秒,最后8位为单位精确到10毫秒的创建秒数。

·
文件创建、访问、修改日期:即161718192425字节,其中高7位为相对于1980年的年份值,次4位为月份,后5位为月内日期。

·
文件最新修改时间:即2223字节,其中高5位为小时,次6位为分钟,后5位的倍数为秒数。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有