首页 理论教育 实现树形目录结构及数据恢复

实现树形目录结构及数据恢复

时间:2023-10-23 理论教育 版权反馈
【摘要】:现在学过了目录结构和FAT,就容易了解DOS是如何来实现文件系统的。假设磁盘上有树形目录结构,前已述及,DOS对一个已建立文件,在目录表上都有一个32字节的目录项,用来登记该文件有关文件名属性起始簇号等信息。同样,对一个子目录文件所包含的文件名和下一级子目录名,也在其相应子目录表中设置32字节的登记项,其登记格式含义也适合上述目录结构,因此树形目录按照图2.7所示示意图来实现。

实现树形目录结构及数据恢复

现在学过了目录结构和FAT,就容易了解DOS是如何来实现文件系统的。

假设磁盘上有树形目录结构,前已述及,DOS对一个已建立文件,在目录表上都有一个32字节的目录项,用来登记该文件有关文件名属性起始簇号等信息。同样,对一个子目录文件所包含的文件名和下一级子目录名,也在其相应子目录表中设置32字节的登记项,其登记格式含义也适合上述目录结构,因此树形目录按照图2.7所示示意图来实现。

其中子目录项的第一个簇由起始簇号指向,若子目录项多而再需要其他簇时,就进入FAT,由簇链寻找其所在盘空间。

子目录的第一项为“.”,即子目录本身。因此它的起始簇号指向自己;第二项为“..”,即父目录,它的起始簇号指向它的父目录,图中为简单而没有画出来。

以上示意图,读者可在软盘上进行上机实验;在实验盘建立指定目录结构,然后由DEBUG程序,装入磁盘目录区,寻到有关文件表项内容,然后再装入FAT,通过扇区定位,找各子目录的目录表项,最后列表给出各给文件名\子目录名、属性、起始簇,文件长度、簇数等性能的表格结果。

【例2.2】 将该A:盘中的DEBUG.EXE删除后通过C:盘DEBUG,用直接读逻辑扇区的方法将其恢复,操作如下。

图2.7 树形目录结构的实现图

F—信息文件(属性);D—目录文件(属性)

设所有文件全连续,此时可将A:盘DEBUG.EXE删除

根据上面的公式,已知文件的首簇号可以计算该文件在磁盘中的起始逻辑扇区号

逻辑扇区号=首簇号×1+1F=29F+1F=2BE

由该文件的长度,计算该文件所占的扇区数=504A/200(有余则加1)=28+1=29

(www.xing528.com)

【例2.3】 将该A:盘中的SUB子目录中的EDIT.COM删除后通过C:盘DEBUG,用修改被删除文件名首字节及恢复FAT表的方法将其恢复,操作如下。

设所有文件全连续,此时可将A:盘SUB 子目录中的EDIT.COM删除。

根据上面的目录项的内容,可知被删除文件EDIT.COM的首簇号=0D4A。

可以计算该簇号在FAT表中的地址=04DA×1.5=747,由于FAT表装入起始地址=100;所以首簇号在FAT表中的地址=747+100=847;由于首簇号为偶数,所以[0847]=C4DB,即连续三个字节单元为DB C4 4D。

该文件占总簇数=文件长/200=119EE/200=8D。

该文件最后簇号在FAT表中的地址=(04DA+(8D-1))×1.5=566×1.5=819

由于FAT表装入起始地址=100;所以最后簇号在FAT表中的地址=819+100=919;由于最后簇号为偶数;所以[0919]=8FFF,即连续三个字节单元为FF 8F 56(568为下一文件用)。

这样该文件FAT表中首地址与末地址的内存值确定后,中间部分内容可根据标准FAT表确定即可。

下面可根据计算结果和标准FAT表填其值后显示如下:

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈