存储文件及恢复误删除文件的方法

文档序号:6341168阅读:453来源:国知局
专利名称:存储文件及恢复误删除文件的方法
技术领域
本发明涉及一种存储文件及恢复误删除文件的方法,它属于一种计算机存储文 件及恢复误删除文件的方法。
背景技术
数据的重要性不言而喻,然而随着各种存储设备(磁盘、移动硬盘或U盘)越来 越广泛的应用,存储在介质上的数据经常发生误删除后又被覆盖,以至于不能恢复的灾 难性事故。
在现有的各种文件系统(如FAT、NTFS等)中,文件一旦被删除,其所占用的 空间就会被认为是可用空间,在新写入文件的时候,很容易将此空间覆盖,从而导致被 删除的文件无法恢复。发明内容
本发明的目的是解决现有方法存在的文件被删除后容易被覆盖而导致无法恢复 的技术问题,提供一种能提高文件恢复成功率的存储文件及恢复误删除文件的方法。
本发明为解决上述技术问题而采用的技术方案是一种存储文件及恢复误删除 文件的方法,其包括以下步骤
(1)首先将存储介质空间分成四种状态空白、已占用、已删除和坏簇;所述 空白是指该空间没有任何数据;所述已占用是指该空间已写入了文件;所述已删除是指 该空间已写入了文件,但该文件已被删除;所述坏簇是指该空间已损坏;
(2)在存储介质分区中建立一个伪循环队列,上述步骤中的四种状态在伪循环队 列中对应四个区域空白区、已占用区、已删除区和坏簇区;
(3)在存储介质分区中建立一个指针区,用于记录伪循环队列中四个区对应的位 置及长度;
(4)当需要存储文件时,直接将空白区开始位置对应的存储介质空间分配给该文 件,如果空白区已全部用完,则将已删除区中开始位置对应的存储介质空间分配给该文 件;
(5)当删除文件时,通过对循环队列区中文件对应的单元进行数据交换,将该文 件所占用空间的索引放到伪循环队列的已删除区的最后位置;
(6)当需要恢复被删除的文件时,在已删除区中找到该文件并将其恢复。
所述伪循环队列由两部分组成,分别为循环队列(Ciralar Queue,缩写为CQ)区 和簇索引(Cluster hidex,缩写为Cl)区。循环队列区是一个循环队列,其长度为η,η 为该分区中簇的总数,循环队列区中的每个单元中存储了对应簇索引区的地址索引;簇 索引区对应实际的簇的位置,其长度为也为η,簇索引区中的每个单元与实际的簇按顺序 --对应。
在没有坏簇时的正常状态下,每个区域在伪循环队列中都是连续存放,对应的物理空间则可以是随机存放;当有坏簇时,坏簇区在伪循环队列中连续存放,其对应的 物理空间可以是随机存放。
由于本发明采用了上述技术方案,极大的提高了误删除数据的恢复成功率。因 此,与背景技术相比,本发明具有下列优点
1、在存储介质上写入的总数据量(包括被删除的文件)没有达到存储介质的总 容量时,被删除的文件可以100%被恢复。
2、在存储介质上写入的总数据量超过了存储介质的总容量时,只是最早删除 的文件被覆盖,而最近删除的文件则可以被完整地恢复,大大提高了恢复文件的成功机 率。存储介质可用空间的容量越大,恢复的成功率越高。


图1是本发明中文件系统的分区结构图2是空间状态迁移图3是正常情况下伪循环队列的逻辑结构图4是没有空白区时伪循环队列的逻辑结构图5是有坏簇时伪循环队列的逻辑结构图6是分区格式化后伪循环队列的逻辑结构图7是分区格式化后伪循环队列的存储结构示意图8是新增三个文件后伪循环队列的逻辑结构图9是新增三个文件后伪循环队列的存储结构示意图10是删除文件F2后伪循环队列的逻辑结构图11是删除文件F2后伪循环队列的存储结构示意图12是删除文件F3并新建文件F4后伪循环队列的逻辑结构图13是删除文件F3并新建文件F4后伪循环队列的存储结构示意图
图14是有坏簇时伪循环队列的逻辑结构图15是有坏簇时伪循环队列的存储结构示意图。
具体实施方式
下面结合附图和实施例对本发明做进一步的详细说明。
一种存储文件及恢复误删除文件的方法,其包括以下步骤
(1)首先将存储介质空间分成四种状态空白、已占用、已删除和坏簇;所述 空白是指该空间没有任何数据;所述已占用是指该空间已写入了文件;所述已删除是指 该空间已写入了文件,但该文件已被删除;所述坏簇是指该空间已损坏;
(2)在存储介质分区中建立一个伪循环队列,上述步骤中的四种状态在伪循环队 列中对应四个区域空白区、已占用区、已删除区和坏簇区;
(3)在存储介质分区中建立一个指针区,用于记录伪循环队列中四个区对应的位 置及长度;
(4)当需要存储文件时,直接将空白区开始位置对应的存储介质空间分配给该文 件,如果空白区已全部用完,则将已删除区中开始位置对应的存储介质空间分配给该文件;
(5)当删除文件时,通过对循环队列区中文件对应的单元进行数据交换,将该文 件所占用空间的索引放到伪循环队列的已删除区的最后位置;
(6)当需要恢复被删除的文件时,在已删除区中找到该文件并将其恢复。
所述伪循环队列由两部分组成,分别为循环队列(Ciralar Queue,缩写为CQ)区 和簇索引(Cluster hidex,缩写为Cl)区,循环队列区是一个循环队列,其长度为η,η为 该分区中簇的总数,循环队列区中的每个单元中存储了对应簇索引区的地址索引;簇索 引区对应实际的簇的位置,其长度也为η,簇索引区中的每个单元与实际的簇按顺序一一 对应。
在没有坏簇时的正常状态下,每个区域在伪循环队列中都是连续存放,对应的 物理空间则可以是随机存放;当有坏簇时,坏簇区在伪循环队列中连续存放,其对应的 物理空间可以是随机存放。
如图1所示,本发明系统的分区结构按顺序分为9个部分引导扇区,指针区, 指针备份区,保留扇区,循环队列(GQ)区,簇索引(Cl)区,循环队列(CQ)备份区, 簇索引(Cl)备份区,目录及数据区。其中CQ区和CI区组成了伪循环队列。所述引导 扇区占1个扇区,记录每扇区字节数、每簇扇区数、总簇数、保留扇区的长度、伪循 环队列长度、版本号等信息。所述指针区占1个扇区,记录伪循环列中所用到的指针 及各个区的长度;其结构以C语言表示为
typedef structULONG32UsedIndex; //已占用区首指针, ULONG32UsedCapacity; //已占用区所占用量,单位为簇; ULONG32EmptyIndex; //空白区首指针, ULONG32EmptyCapacity; //空白区容量,单位为簇; ULONG32DeletedIndex; // 已删除区首指针, ULONG32DeletedCapacity; //已删除区容量,单位为簇; ULONG32BadIndex ; //坏簇区首指针, ULONG32BadCapacity ; //坏簇区容量,单位为簇;} PSPoint, *PPSPoint。
所述指针备份区占1个扇区,指针区的备份;正常情况下内容与指针区完全相同。
所述保留扇区保留以后用,其长度记录在引导扇区中,其长度可以为0。
所述CQ区CQ区是一个循环队列,其长度为η,η为该分区中簇的总数,每个5单元中存储了对应CI区的地址索引。CQ区中每个单元的数据结构以C语言表示为
权利要求
1.一种存储文件及恢复误删除文件的方法,其特征是包括以下步骤(1)首先将存储介质空间分成四种状态空白、已占用、已删除和坏簇;所述空白 是指该空间没有任何数据;所述已占用是指该空间已写入了文件;所述已删除是指该空 间已写入了文件,但该文件已被删除;所述坏簇是指该空间已损坏;(2)在存储介质分区中建立一个伪循环队列,上述步骤中的四种状态在伪循环队列中 对应四个区域空白区、已占用区、已删除区和坏簇区;(3)在存储介质分区中建立一个指针区,用于记录伪循环队列中四个区对应的位置及 长度;(4)当需要存储文件时,直接将空白区开始位置对应的存储介质空间分配给该文件, 如果空白区已全部用完,则将已删除区中开始位置对应的存储介质空间分配给该文件;(5)当删除文件时,通过对循环队列区中文件对应的单元进行数据交换,将该文件所 占用空间的索引放到伪循环队列的已删除区的最后位置;(6)当需要恢复被删除的文件时,在已删除区中找到该文件并将其恢复。
2.根据权利要求1所述的存储文件及恢复误删除文件的方法,其特征是所述伪循 环队列由两部分组成,分别为循环队列(CirularQueue)区和簇索引(ClusterIndex)区,循 环队列区是一个循环队列,其长度为η,η为该分区中簇的总数,循环队列区中的每个单 元中存储了对应簇索引区的地址索引;簇索引区对应实际的簇的位置,其长度也为η, 簇索引区中的每个单元与实际的簇按顺序一一对应。
3.根据权利要求1所述的存储文件及恢复误删除文件的方法,其特征是在没有坏 簇时的正常状态下,每个区域在伪循环队列中都是连续存放,对应的物理空间则可以是 随机存放;当有坏簇时,坏簇区在伪循环队列中连续存放,其对应的物理空间可以是随 机存放。
全文摘要
本发明涉及一种存储文件及恢复误删除文件的方法。本发明主要是解决现有方法存在的文件被删除后无法恢复的技术问题。本发明的技术方案是一种存储文件及恢复误删除文件的方法,其包括以下步骤(1)首先将存储介质空间分成四种状态空白、已占用、已删除和坏簇;(2)在存储介质分区中建立一个伪循环队列;(3)在存储介质分区中建立一个指针区;(4)当需要存储文件时,直接将空白区开始位置对应的存储介质空间分配给该文件;(5)当删除文件时,通过对循环队列区中相应单元进行数据交换,将该文件所占用空间的索引放到伪循环队列的已删除区的最后位置;(6)当需要恢复被删除的文件时,在已删除区中找到该文件并将其恢复。
文档编号G06F17/30GK102024060SQ20101062063
公开日2011年4月20日 申请日期2010年12月31日 优先权日2010年12月31日
发明者张游杰 申请人:山西奥克斯电子系统工程中心
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1