⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 文件目录表.htm

📁 fat文件系统管理详细分析
💻 HTM
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0044)http://cracker2003.nease.net/htm/disk007.htm -->
<HTML><HEAD><TITLE>文件目录表</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<META content="MSHTML 6.00.2800.1400" name=GENERATOR>
<META content=FrontPage.Editor.Document name=ProgId></HEAD>
<BODY background=文件目录表.files/back01.jpg>
<TABLE width="100%" border=0>
  <TBODY>
  <TR>
    <TD width="100%"></TD></TR>
  <TR>
    <TD width="100%">当前位置:<A 
      href="http://cracker2003.nease.net/index.htm">首页</A>-<A 
      href="http://cracker2003.nease.net/htm/disk001.htm">磁盘文件</A>-文件目录表(FDT)及其结构</TD></TR></TBODY></TABLE>
<P>文件目录表(FDT)及其结构</P>
<P 
style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px">用FORMAT命令对磁盘(或逻辑盘)进行格式化的时候,就已经为整个硬盘建立了一个根目录FDT。在根目录下,用户可以用DOS命令"MD"再创建不同的各个子目录,以及子目录下的子目录。<BR>根目录以及各级子目录都有自己的FDT。<BR>在具体操作中,系统规定用字母C-Z代表逻辑盘符,所以DOS简单地用“[盘符:]\”表示在根目录下。根目录的作用是分配根目录下的所有文件和子目录的存储空间(逻辑扇区号),并且通过设备驱动程序接口确定有效的最大目录项。<BR><B>1.根目录中的FDT</B> 
</P>
<P 
style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px">根目录的作用是分配根目录下的所有文件和子目录的存储空间(逻辑扇区号),并通过设备驱动程序接口确定有效的最大目录项。<BR>根目录下的所有文件及其子目录在根目录的文件目录表(FDT)中都有一个“目录登记项”或简称为“目录项”。每个目录登记项占用32个字节,分为8个区域,提供有关文件或子目录的信息。其中包括了DOS的系统文件(IO.SYS、MSDOS.SYS、和COMMAND.COM)的目录项。<BR>常用软盘的根目录(FDT)所在逻辑扇区如下:<BR>360KB:5--11扇区,共7个扇区<BR>1.2MB:15--28扇区,共14个扇区<BR>1.44MB:19--32扇区,共14个扇区<BR>在硬盘中,各逻辑盘的根FDT的起始逻辑扇区由分区容量确定。在FAT16中,其大小总是32(20H)个扇区。FAT32中的根FDT大小与其逻辑盘容量有关。<BR>下面是用DEBUG读出1.44MB软盘逻辑13H扇区开始的14个扇区内容的例子。<BR>C&gt;DEBUG<BR>-L 
00 0 13 E<BR>-D 00<BR>0DE5:0000 49 4F 20 20 20 20 20 20-53 59 53 27 00 00 00 00 
IO SYS'....<BR>0DE5:0010 00 00 00 00 00 00 C0 32-BF 1C 1D 00 46 9F 00 00 
......2...F.....<BR>0DE5:0020 4D 53 44 4F 53 20 20 20-53 59 53 27 00 00 00 00 
MSDOS SYS'....<BR>0DE5:0030 00 00 00 00 00 00 C0 32-BF 1C 6D 00 FA 94 00 00 
.......2 ..m...<BR>0DE5:0040 43 4F 4D 4D 41 4E 44 20-43 4F 4D 20 00 00 00 00 
COMMAND COM..<BR>0DE5:0050 00 00 00 00 00 00 C0 32-BF 1C B8 00 75 D5 00 00 
.......2 
..u...<BR><B>2.FDT中的目录项</B><BR>根目录下的所有文件及其子目录在根目录的文件目录表(FDT)中都有一个“目录登记项”或简称为“目录项”。<BR>由于每个文件的目录登记项占用32个字节,用作目录的一个扇区(512字节)最多只能装入512/32=16个文件。因此,在常用磁盘的根目录下最多可建文件或子目录数如下:<BR>360 
KB: 共7个扇区, 7*16=112个文件或子目录。<BR>1.2 MB: 共14个扇区,14*16=224个文件或子目录。<BR>1.44MB: 
共14个扇区,14*16=224个文件或子目录。<BR>硬盘逻辑盘:共32个扇区,16*32=512个文件或子目录。<BR>在FDT中,每个目录登记项占用32个字节,分为8个区域,提供有关文件或子目录的信息,包括DOS的系统文件IO.SYS、MSDOS.SYS的目录项。<BR>在FAT16文件系统中,一个文件目录登记项32个字节中个字节的内容及含义如表6-6所示。<BR>表6-6 
FAT16文件目录项内容及含义表<BR></P>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=1>
  <TBODY>
  <TR>
    <TD align=middle width="19%">字节位置</TD>
    <TD align=middle width="81%" colSpan=2>内&nbsp; 容&nbsp; 及&nbsp; 含&nbsp; 
  义</TD></TR>
  <TR>
    <TD align=middle width="19%">第0--7字节</TD>
    <TD width="81%" colSpan=2>表示文件名</TD></TR>
  <TR>
    <TD align=middle width="19%">第8--10字节</TD>
    <TD width="81%" colSpan=2>表示文件的扩展名</TD></TR>
  <TR>
    <TD align=middle width="19%" rowSpan=7>第11字节</TD>
    <TD width="7%" rowSpan=7>
      <P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px" align=center>表</P>
      <P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px" align=center>示</P>
      <P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px" align=center>文</P>
      <P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px" align=center>件</P>
      <P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px" align=center>属</P>
      <P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px" align=center>性</P></TD>
    <TD width="74%">00H(读写)</TD></TR>
  <TR>
    <TD width="74%">01H(只读)</TD></TR>
  <TR>
    <TD width="74%">02H(隐藏)</TD></TR>
  <TR>
    <TD width="74%">04H(系统)</TD></TR>
  <TR>
    <TD width="74%">08H(卷标)</TD></TR>
  <TR>
    <TD width="74%">10H(子目录)</TD></TR>
  <TR>
    <TD width="74%">20H(归档——只要完成了写操作并已关闭,则该位置1)</TD></TR>
  <TR>
    <TD align=middle width="19%">第12--21字节</TD>
    <TD width="81%" colSpan=2>保留未用</TD></TR>
  <TR>
    <TD align=middle width="19%">第22--23字节</TD>
    <TD width="81%" colSpan=2>表示文件的创建时间</TD></TR>
  <TR>
    <TD align=middle width="19%">第24--25字节</TD>
    <TD width="81%" colSpan=2>表示文件的创建日期</TD></TR>
  <TR>
    <TD align=middle width="19%">第26--27字节</TD>
    <TD width="81%" colSpan=2>表示文件的起始簇号(首簇号)</TD></TR>
  <TR>
    <TD align=middle width="19%">第28--31字节</TD>
    <TD width="81%" colSpan=2>表示文件的字节数</TD></TR></TBODY></TABLE>
<P 
style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"><BR>FAT16文件系统对每个文件来说其数据结构是一个单项簇链表,而文件在文件目录表FDT中占一个文件目录项,每个文件的首簇号就存放在该文件的目录项中,一个文件目录项占32个字节。对FDT中一个文件目录项的几个参数值作如下说明:<BR>(1)文件名<BR>FAT16文件系统中,FDT的文件目录项中第0-7字节为文件名(若有剩余字节则用空白符20H填充)。其中,第1字节又表明了该文件的状态,它有如下3种取值方式:<BR>·00H目录项的空表目。<BR>·E5表示该目录项曾经使用过,但文件已被删除。<BR>·2E表示该项为子目录项。<BR>其它任何字符表示一个文件名(或子目录名)的第一个字符的ASCII码值。<BR>(2)文件属性<BR>第11字节为文件属性字节,按位规定如下:<BR></P>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
  <TBODY>
  <TR>
    <TD align=middle width="12%">b7</TD>
    <TD align=middle width="12%">b6</TD>
    <TD align=middle width="12%">b5</TD>
    <TD align=middle width="12%">b4</TD>
    <TD align=middle width="13%">b3</TD>
    <TD align=middle width="13%">b2</TD>
    <TD align=middle width="13%">b1</TD>
    <TD align=middle width="13%">b0</TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=1>
  <TBODY>
  <TR>
    <TD align=middle width="12%">
      <P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px">未用</P></TD>
    <TD align=middle width="12%">
      <P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px">未用</P></TD>
    <TD align=middle width="12%">
      <P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px">归档</P></TD>
    <TD align=middle width="12%">
      <P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px">子目录</P></TD>
    <TD align=middle width="13%">
      <P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px">卷标</P></TD>
    <TD align=middle width="13%">
      <P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px">系统</P></TD>
    <TD align=middle width="13%">
      <P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px">隐藏</P></TD>
    <TD align=middle width="13%">
      <P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px">只读</P></TD></TR></TBODY></TABLE>
<P><BR>(3)文件创建(修改)时间<BR>·(第22字节0--4位)以2秒为增量的二进制树<BR>·(23字节0--2位)+(22字节5--7位)为分钟<BR>·(第23字节3--7位)为小时<BR>(4)文件创建(修改)日期<BR>·(第24字节0--4位)为日期1--31<BR>·(25字节0位)+(24字节5--7位)为月份1--12<BR>·(第25字节1--7位)为年号0--119(1980--2099)<BR>(5)文件首簇号<BR>第26、27 
字节存放该文件的首簇号。系统根据FAT中该文件的单链表即可找到它的全部内容。<BR>要注意区分文件目录表(FDT)和FDT中的目录登记项这两个概念。<BR>目录登记项是一个32字节长的数据块,它记录了一个文件或子目录的有关信息。FDT是由若干目录登记项组成的一个表。根目录区是盘卷上的一个固定区域,根目录及各子目录都有各自的FDT。</P>
<P align=center><A href="http://cracker2003.nease.net/htm/disk006.htm">上一页</A> 
<A href="http://cracker2003.nease.net/htm/disk001.htm">返回</A> <A 
href="http://cracker2003.nease.net/htm/disk008.htm">下一页</A></P></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -