掌桥专利:专业的专利平台
掌桥专利
首页

非连续存储文件的恢复方法、装置、设备及存储介质

文献发布时间:2023-06-19 11:05:16


非连续存储文件的恢复方法、装置、设备及存储介质

技术领域

本发明涉及数据恢复技术领域,尤其涉及一种非连续存储文件的恢复方法、装置、设备及存储介质。

背景技术

FAT32文件系统由DBR、FAT表和DATA区三个部分组成,当FAT32文件系统中的文件/文件夹被删除的时候,FAT表中对应的簇链表就会被清零,文件/文件夹被删除后只能够知道目录项指向的首簇块和文件长度,对于连续的数据现有技术可以根据首簇的位置向后读取簇块,只要满足文件长度即可。但是对于不连续的数据使用该方法恢复出来的文件只有首簇块是正常的,其余全是垃圾数据,现有技术的文件恢复方法并无法满足非连续存储文件的恢复需求。

因此,现有技术还有待于改进和发展。

发明内容

本发明的主要目的在于解决现有技术的文件恢复方法无法实现非连续存储文件的恢复的技术问题。

本发明第一方面提供了一种非连续存储文件的恢复方法,应用于FAT32文件系统,所述非连续存储文件的恢复方法包括:

扫描DATA区,获得文件的短文件目录项;

通过所述短文件目录项的首字节判断所述文件是否为已删除文件;

若所述文件为已删除文件,则根据所述短文件目录项中记载的文件信息获得所述文件的首簇块;

将所述首簇块转换成在FAT表中的位置;

从所述位置开始往后循环检索所述FAT表中表项值为零的表项,并获取所述表项对应的后续簇块;

通过所述首簇块中的数据和所述后续簇块中的数据恢复所述文件。

在本发明第一方面一种可选的实施方式中,所述根据所述短文件目录项的首字节判断所述文件是否为已删除文件包括:

若所述短文件目录项的首字节为E5,则所述短文件目录对应的所述文件为已删除文件。

在本发明第一方面一种可选的实施方式中,所述若所述文件为已删除文件,则根据所述短文件目录项中记载的文件信息获得所述文件的首簇块包括:

获取所述短文件目录项中的起始簇号低位,并假定起始簇号高位;

读取所述起始簇号低位和所述假定起始簇号高位指向的簇块中的数据;

若所述数据与所述短文件目录项中记载的文件拓展名匹配,则将所述簇块作为首簇块。

在本发明第一方面一种可选的实施方式中,所述将所述首簇块转换成在FAT表中的位置包括:

获取所述首簇块的簇号,根据所述簇号获得所述首簇块在所述FAT表中对应的表项号。

在本发明第一方面一种可选的实施方式中,所述从所述位置开始往后循环检索所述FAT表中表项值为零的表项,并获取所述表项对应的后续簇块包括:

从所述表项号开始,往后循环检索所述FAT表中表项值为零的表项,并获取所述表项对应的后续簇块,直到获取到的所述首簇块和所述后续簇块的总长度大于等于所述短文件目录项中记载的文件长度或重新回到所述表项号为止。

在本发明第一方面一种可选的实施方式中,所述非连续存储文件的恢复方法还包括:

若所述文件并非已删除文件,则直接通过所述FAT表中的簇链来恢复所述文件。

在本发明第一方面一种可选的实施方式中,其特征在于,所述FAT表包括活动FAT表和备份FAT表。

本发明第二方面提供了一种非连续存储文件的恢复装置,所述非连续存储文件的恢复装置包括:

扫描模块,用于扫描DATA区,获得文件的短文件目录项;

判断模块,用于通过所述短文件目录项的首字节判断所述文件是否为已删除文件;

获取模块,用于若所述文件为已删除文件,则根据所述短文件目录项中记载的文件信息获得所述文件的首簇块;

转换模块,用于将所述首簇块转换成在FAT表中的位置;

检索模块,用于从所述位置开始往后循环检索所述FAT表中表项值为零的表项,并获取所述表项对应的后续簇块;

恢复模块,用于通过所述首簇块中的数据和所述后续簇块中的数据恢复所述文件。

本发明第三方面提供了一种非连续存储文件的恢复设备,所述非连续存储文件的恢复设备包括:存储器和至少一个处理器,所述存储器中存储有指令,所述存储器和所述至少一个处理器通过线路互连;

所述至少一个处理器调用所述存储器中的所述指令,以使得所述非连续存储文件的恢复设备执行上述任一项所述的非连续存储文件的恢复方法。

本发明第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的非连续存储文件的恢复方法。

有益效果:本发明提供了一种非连续存储文件的恢复方法、装置、设备及存储介质,其中,方法包括扫描DATA区,获得文件的短文件目录项;通过所述短文件目录项的首字节判断所述文件是否为已删除文件;若所述文件为已删除文件,则根据所述短文件目录项中记载的文件信息获得所述文件的首簇块;将所述首簇块转换成在FAT表中的位置;从所述位置开始往后循环检索所述FAT表中表项值为零的表项,并获取所述表项对应的后续簇块;通过所述首簇块中的数据和所述后续簇块中的数据恢复所述文件。本发明的恢复方法在获得首簇块后,还会检索FAT表中首簇块表项之后的表项值为零的表项,获取后续簇块,能够适应对非连续存储文件的数据恢复。

附图说明

图1为FAT32文件系统的结构示意图;

图2为本发明一种非连续存储文件的恢复方法的流程框图;

图3为本发明文件A未删除时的FAT表项表及其存储的表项值的示意图;

图4为本发明文件A删除后的FAT表项表及其存储的表项值的示意图;

图5为本发明一种非连续存储文件的恢复装置的一个实施例示意图;

图6为本发明一种非连续存储文件的恢复设备的一个实施例示意图。

具体实施方式

本发明实施例提供了一种非连续存储文件的恢复方法、装置、设备及存储介质。

本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

参见图1,FAT32文件系统由DBR、FAT表和DATA区三个部分组成。在FAT32文件系统中使用术语簇来描述一个块,给磁盘中所有的簇块都分配一个簇号,由所有的簇块组成了DATA区。FAT表中的每四个字节构成一个项,从二号项开始每个项按顺序与磁盘中的簇块一一对应。FAT表通过项本身的序号与项中存储的下一个项的序号构成一张链表。文件/文件目录项指向FAT表中的某个项就知道了文件、文件夹的所有簇块。

FAT32文件系统中是以簇块为基本单位进行存储的,如果文件的大小超过一个簇,那文件就会被切分成很多的簇块。文件一般都是连续存储,当磁盘碎片比较多的时候,文件也很有可能会不连续存储。FAT表的簇链用来记录了文件的簇块的存储顺序与位置,访问链表对应的簇块就能进行文件的读写。

文件的属性与文件的内容分开存储。文件的内容切分成簇块后存入DATA区中,FAT表按顺序记录下簇块的位置。文件的属性由短文件目录项来存储,包括文件名、文件创建时间、文件大小、文件首簇块的簇号等信息。由文件首簇块的簇号和FAT表中对应的链表,就能把短文件目录项与文件的内容对应起来。

当文件/文件夹被删除的时候,FAT表中对应的簇链表就会被清零,文件短目录项的首字节变成预设字符。文件被删除后从短文件目录项中只能够知道文件/文件夹首簇块的低地址和文件长度信息。连续存储文件的数据可以根据首簇的位置向后读取,满足文件长度即可。但不连续存储文件的数据使用该方法恢复出来的文件只有首簇块是正常的,其余全是垃圾数据。

为解决上述技术问题,请参阅图2,本发明第一方面提供了一种非连续存储文件的恢复方法,应用于FAT32文件系统,所述非连续存储文件的恢复方法包括:

S100、扫描DATA区,获得文件的短文件目录项;短文件目录项是FAT32文件系统重要的数据结构,其中存放着有关子目录或文件的文件名、文件扩展名、起始簇号、时间值和文件长度等信息;

S200、通过所述短文件目录项的首字节判断所述文件是否为已删除文件;

在本实施例中,FAT32文件系统文件删除后,文件对应的短文件目录项的首字节会变成E5,因此,可以通过短文件目录项的首字节判断文件是否为已删除文件;

S300、若所述文件为已删除文件,则根据所述短文件目录项中记载的文件信息获得所述文件的首簇块;

在本实施例中,短文件目录项中记载的文件信息包括文件名,文件扩展名,起始簇高位,起始簇低位和文件长度,可以根据起始簇高位和起始簇低位确定文件的首簇块,但是由于已删除文件的起始簇高位已变为零,所以需要通过猜起始簇高位的方式来获取首簇块;

S400、将所述首簇块转换成在FAT表中的位置;

在本实施例中,DATA区中每个簇块都有对应的簇号,首簇块为这些簇块中的一个,当确定首簇块为哪个簇块后,就可以知晓首簇块的簇号,而首簇块的簇号又与FAT表中表项的表项号对应,就是从FAT表中的2号表项开始,都会表项的表项号会与簇块的簇号相同,即2号表项对应2号簇块,3号表项对应3号簇块,依次类推;

S500、从所述位置开始往后循环检索所述FAT表中表项值为零的表项,并获取所述表项对应的后续簇块;

在本实施例中,比如确定了3号簇块为首簇块,而3号簇块对应的FAT表中的3号表项,那么从3号表项开始,依次判断4号表项、5号表项、6号表项,至轮询回3号表项为止的所有表项的表项值是否为零,如果5号表项和6号表项的表项值为零,则获取5号表项和6号表项对应的5号簇块和6号簇块中的数据作为文件的恢复数据;

S600、通过所述首簇块中的数据和所述后续簇块中的数据恢复所述文件。

举例来说,参见图3,未删除的文件A的保存方式:首簇为3号簇,3号簇对应的3号表项中存储有表项值5,那么文件A的下一个簇块就是5号簇,5号簇对应的5号表项中又存储有表项值7,那么文件A的再下一个簇就是7号簇,7号簇对应的7号表项中存储有终结符,那么文件A就由3号簇、5号簇和7号簇组成;参见图4,删除文件A后,3号表项、5号表项和7号表项的表项值都会清零,恢复文件A时,首先根据短文件目录项中记载的文件信息猜出首簇为3号簇,接着往后循环检索到FAT表中的5号表项和7号表项的表项值都为零(表项值为零表示表项未被重新分配使用,里面可能存储有文件的恢复数据)。

在本发明第一方面一种可选的实施方式中,所述根据所述短文件目录项的首字节判断所述文件是否为已删除文件包括:

若所述短文件目录项的首字节为E5,则所述短文件目录对应的所述文件为已删除文件。

在本发明第一方面一种可选的实施方式中,所述若所述文件为已删除文件,则根据所述短文件目录项中记载的文件信息获得所述文件的首簇块包括:

获取所述短文件目录项中的起始簇号低位,并假定起始簇号高位;

读取所述起始簇号低位和所述假定起始簇号高位指向的簇块中的数据;

若所述数据与所述短文件目录项中记载的文件拓展名匹配,则将所述簇块作为首簇块。

在本发明第一方面一种可选的实施方式中,所述将所述首簇块转换成在FAT表中的位置包括:

获取所述首簇块的簇号,根据所述簇号获得所述首簇块在所述FAT表中对应的表项号。

在本发明第一方面一种可选的实施方式中,所述从所述位置开始往后循环检索所述FAT表中表项值为零的表项,并获取所述表项对应的后续簇块包括:

从所述表项号开始,往后循环检索所述FAT表中表项值为零的表项,并获取所述表项对应的后续簇块,直到获取到的所述首簇块和所述后续簇块的总长度大于等于所述短文件目录项中记载的文件长度或重新回到所述表项号为止。

在本实施例中,若检索到FAT表中最后一个表项号后,所述首簇块和所述后续簇块的总长度始终小于短文件目录项中记载的文件长度,那么还需要检索首簇块对应的表项号之前的表项号,直到首簇块对应的表项号为止。

在本发明第一方面一种可选的实施方式中,所述非连续存储文件的恢复方法还包括:

若所述文件并非已删除文件,则直接通过所述FAT表中的簇链来恢复所述文件。在本实施例中,对于未删除文件的恢复,由于FAT表的表项中存储有下一表项的表项值(即簇链),所以可以直接通过簇链来恢复文件。

在本发明第一方面一种可选的实施方式中,其特征在于,所述FAT表包括活动FAT表和备份FAT表。

参见图5,本发明第二方面提供了一种非连续存储文件的恢复装置,所述非连续存储文件的恢复装置包括:

扫描模块10,用于扫描DATA区,获得文件的短文件目录项;

判断模块20,用于通过所述短文件目录项的首字节判断所述文件是否为已删除文件;

获取模块30,用于若所述文件为已删除文件,则根据所述短文件目录项中记载的文件信息获得所述文件的首簇块;

转换模块40,用于将所述首簇块转换成在FAT表中的位置;

检索模块50,用于从所述位置开始往后循环检索所述FAT表中表项值为零的表项,并获取所述表项对应的后续簇块;

恢复模块60,用于通过所述首簇块中的数据和所述后续簇块中的数据恢复所述文件。

在本发明第二方面一种可选的实施方式中,所述判断模块还用于若所述短文件目录项的首字节为E5,则所述短文件目录对应的所述文件为已删除文件。

在本发明第二方面一种可选的实施方式中,所述获取模块还用于获取所述短文件目录项中的起始簇号低位,并假定起始簇号高位;

读取所述起始簇号低位和所述假定起始簇号高位指向的簇块中的数据;

若所述数据与所述短文件目录项中记载的文件拓展名匹配,则将所述簇块作为首簇块。

在本发明第二方面一种可选的实施方式中,所述转换模块还用于获取所述首簇块的簇号,根据所述簇号获得所述首簇块在所述FAT表中对应表项的表项号。

在本发明第二方面一种可选的实施方式中,所述检索模块还用于从所述位置往后循环检索所述FAT表中表项值为零的表项,并获取所述表项对应的后续簇块,直到获取到的所述首簇块和所述后续簇块的总长度大于等于所述短文件目录项中记载的文件长度或重新回到所述表项号为止。

在本发明第二方面一种可选的实施方式中,所述恢复模块还用于若所述文件并非已删除文件,则直接通过所述FAT表中的簇链来恢复所述文件。

在本发明第二方面一种可选的实施方式中,所述FAT表包括活动FAT表和备份FAT表。

图6是本发明实施例提供的一种非连续存储文件的恢复设备的结构示意图,该非连续存储文件的恢复设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器70(central processing units,CPU)(例如,一个或一个以上处理器)和存储器80,一个或一个以上存储应用程序或数据的存储介质90(例如一个或一个以上海量存储设备)。其中,存储器和存储介质可以是短暂存储或持久存储。存储在存储介质的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对非连续存储文件的恢复设备中的一系列指令操作。更进一步地,处理器可以设置为与存储介质通信,在答题卡切分设备上执行存储介质中的一系列指令操作。

非连续存储文件的恢复设备还可以包括一个或一个以上电源100,一个或一个以上有线或无线网络接口110,一个或一个以上输入输出接口120,和/或,一个或一个以上操作系统,例如Windows Serve,Mac OS X,Unix,Linux,FreeBSD等等。本领域技术人员可以理解,图6示出的非连续存储文件的恢复设备结构并不构成对非连续存储文件的恢复设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行所述的非连续存储文件的恢复方法的步骤。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统或装置、单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

相关技术
  • 非连续存储文件的恢复方法、装置、设备及存储介质
  • 副链路非连续接收的控制方法、装置、设备及可读存储介质
技术分类

06120112793125