FAT16文件系统对于根目录下文件的管理,统一在FDT区为这些文件创建目录项,并由FAT为文件的内容分配簇存放数据。
具体看一个例子,目前在G盘根目录下有一个文件“fat16.txt”,我们看FAT16文件系统如何管理这个文件。
第1步 定位DBR。
通过分区表定位到G盘的开始位置,在63号扇区,这个扇区就是G盘的DBR扇区。
第2步 定位FDT。
访问DBR扇区的BPB,通过“DBR保留扇区数”、“每FAT扇区数”两个参数的值便可计算出FDT的开始扇区,具体算法在前面讲解过。
第3步 定位目录项。
找到FDT后,通过文件名定位到目标文件的目录项,其目录项如图4-250中的阴影部分所示。
图4-250 目标文件的目录项
该目录项的模板如图4-251所示。
图4-251 目录项的模板
从模板中可以看到文件开始簇号为5,文件大小为320字节。
第4步 定位FAT。
因为文件开始于5号簇,其下一簇的簇号在FAT表中5号FAT项里存放着,所以通过DBR的BPB参数“DBR保留扇区数”定位FAT1的开始扇区,并跳转过去,找到5号FAT项,其数值如图4-252所示。
图4-252 FAT1的开始扇区
图4-252中阴影部分就是FAT1的5号FAT项,数值为“FF FF”,说明是个结束标志,所以文件“fat16.txt”只占用1个簇,就是5号簇。
第5步 定位数据区。
确定了文件存放在数据区的5号簇,最后就该去5号簇查看数据了。因为数据区中的簇从2开始编号,所以5号簇所对应的扇区号计算方法如下:
DBR保留扇区数 + 2×每FAT扇区数 + FDT占用扇区数(一般为32)+(5−2)×每簇扇区数
计算出结果后跳转过去,内容如图4-253所示。
图4-253 文件的内容
因为文件大小是320字节,所以从5号簇的第一个字节起,连续的320字节就是文件“fat16.txt”的内容,即图4-253中的阴影部分。
以上就是FAT16文件系统根目录的管理,其子目录的管理与FAT32文件系统类似,请读者参见FAT32部分的4.5.6节的“2.子目录的管理”。