FAT文件系统中被删除文件的恢复方法及装置制造方法及图纸

技术编号:7180248 阅读:700 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及一种FAT文件系统中被删除文件的恢复方法及装置,该方法包括:在FAT文件系统的目录中读取当前被删除文件的首簇、大小和创建时间;获取该当前被删除文件的占用簇的个数;从当前被删除文件的首簇开始找下一簇,判断该簇是否为空闲簇、是否为别的被删除文件的首簇、别的被删除文件的创建时间是否在当前被删除文件的创建时间之后;否则累加查找的簇的个数;检测累加查找到的簇的个数是等于当前被删除文件的占用簇的个数时,读取上述记录的簇的内容并重写到其他存储器中。本发明专利技术在当前被删除文件的恢复中,通过去掉被别的被删除文件占用的空闲簇,排除掉不属于当前被删除文件的内容的空闲簇,使得当前被删除文件的恢复更精确。

【技术实现步骤摘要】

本专利技术涉及数据恢复
,具体是FAT文件系统中被删除文件的恢复方法及直ο
技术介绍
Wondons操作系统用FAT文件系统来管理操作文件,FAT (FiIe Allocation Table, 文件配置表)文件系统定义了一套规则以用来存储文件,FAT文件系统主要有两部分来标识文件FAT表和FDT (FiIe Directory Table,文件目录表)表。文件的删除操作,其实就是在FAT表和FDT表上做标识。簇是文件在磁盘上存储的最小单位,簇的大小取决于分区的大小,一般一个簇的大小是2的N次幂。一个文件的FDT表的结构包括文件名、文件属性、创建时间、修改时间、访问时间、首簇号和大小。文件的删除在FDT表上改变的有两处第一处是把文件名的第一个字符改为“E5”,第二处是把文件首簇号的高两位字节清零。对不同的FAT文件系统,FAT表的结构不一样,如FAT16是2个字节表示一个簇的状态,FAT32是4个字节表示一个簇的状态。簇的状态一般有两种一种是空闲,用“00”来表示;还有一种是占用,该占用的状态又分两种情况第一种是结束了,第二种是下一个簇号。以FAT16为例假设有个aaa. txt文件,该aaa. txt文件大小是4K,连续占用2个簇, 首簇号是3,则在FAT表中就是(十六进制表示,每个框中都是2个字节)F8 FFFF FF00 0004 00FF FF(第O簇)(第1簇) (第2簇) (第3簇,首簇) (第4簇)其中上述第2簇就是空闲簇,第3簇中放的是下一个簇号,因为aaa. txt文件的首簇是第3簇,该aaa. txt文件又连续占用两个簇,即该除了首簇还包括下一个簇(第4簇), 所以在FAT表中用0x040x00来表示,到了第4簇就结束了,所以第4簇中就用FF FF来表7J\ ο第一种恢复方法是知道被删除文件的首簇和大小,根据该被删除文件的大小可算出该被删除文件占用簇的个数(如占用N个簇),直接在首簇后连续读取N个簇。第二种恢复方法从首簇后读取N个空闲簇。其中第一种方法只能解决文件内容连续存放的被删除文件,对于被删除文件的文件内容不连续存放情况下,通过恢复方法就不可以恢复该被删除文件。第二种恢复方法,既能恢复文件内容连续存放的被删除文件,对于文件内容不连续存放,但首簇后所找的空闲簇的内容都属于该被删除文件的才可以做到全部恢复。如果所找的空闲簇有不属于该被删除文件的内容,该恢复方法恢复的内容就不正确。
技术实现思路
4本专利技术的主要目的是提供一种FAT文件系统中被删除文件的恢复方法及装置,使得删除文件的恢复更精确。本专利技术解决其技术问题所采用的技术方案是一种FAT文件系统中被删除文件的恢复方法,其包括在FAT文件系统的目录中读取当前被删除文件的首簇、大小和创建时间;根据所述文件的大小获取该当前被删除文件的占用簇的个数;以所述当前被删除文件的首簇为当前簇,在所述FAT文件系统的FAT表中从当前簇开始找下一簇,判断该簇是否为空闲簇,判断该簇是否为别的被删除文件的首簇,判断别的被删除文件的创建时间是否在所述当前被删除文件的创建时间之后;当所述判断的结果都为是时,以该簇为FAT表中的当前簇,执行所述在所述FAT文件系统的FAT表中从当前簇开始找下一簇的步骤;否则,记录下该簇的位置,并累加查找的簇的个数;检测所述累加查找到的簇的个数是否等于当前被删除文件的占用簇的个数,当检测结果为否时,以该簇为FAT表中的当前簇,执行所述在所述FAT文件系统的FAT表中从当前簇开始找下一簇的步骤;当检测结果为是时,读取上述记录的簇的内容,并将所述内容重写到其他存储器中。优选地,在根据所述文件的大小获取该当前被删除文件的占用簇的个数,之后进一步包括判断所述占用簇的个数是否大于1,若不大于1,则读取所述被删除文件的首簇的内容,并将所述内容重写到其他存储器中;若大于1,则执行所述在所述FAT文件系统的FAT 表中从当前簇开始找下一簇的步骤。优选地,所述判断该簇是否为空闲簇,判断该簇是否为别的被删除文件的首簇,判断别的被删除文件的创建时间是否在所述当前被删除文件的创建时间之后的步骤具体包括判断该簇是否为空闲簇,当判断结果为是时,判断该簇是否为别的被删除文件的首簇,当判断结果为是时,判断所述别的被删除文件的创建时间是否在所述当前被删除文件的创建时间之后。优选地,所述判断该簇是否为别的被删除文件的首簇的步骤具体包括从FAT表中查找该簇是否被别的被删除文件占用过,当查找为是时,则判断出该簇为别的被删除文件的首簇;否则,判断出该簇不为别的被删除文件的首簇。优选地,当所述判断的结果都为是时,执行所述在所述FAT文件系统的FAT表中从当前簇开始找下一簇的步骤之前还包括累加查找的簇的个数;所述检测所述累加查找到的空闲簇的个数是否等于该被删除文件的占用簇的个数的步骤具体包括所述检测所述累加查找到的空闲簇的个数是否等于或大于当前被删除文件的占用簇的个数。一种FAT文件系统中被删除文件的恢复装置,其包括信息读取单元,用于在FAT文件系统的目录中读取当前被删除文件的首簇、大小和创建时间;占用簇数获取单元,用于根据所述文件的大小获取该当前被删除文件的占用簇的个数;空闲簇查找判断单元,用于以所述当前被删除 文件的首簇为当前簇,在所述FAT 文件系统的FAT表中从当前簇开始找下一簇,判断该簇是否为空闲簇,判断该簇是否为别的被删除文件的首簇,判断别的被删除文件的创建时间是否在所述当前被删除文件的创建时间之后;结果执行单元,用于当所述判断的结果都为是时,触发所述空闲簇查找判断单元以该簇为FAT表中的当前簇,执行所述在所述FAT文件系统的FAT表中从当前簇开始找下一簇的步骤;否则,记录下该簇的位置,并累加查找的簇的个数;内容恢复单元,用于检测所述累加查找到的簇的个数是否等于当前被删除文件的占用簇的个数,当检测结果为否时,触发所述空闲簇查找判断单元以该簇为FAT表中的当前簇,执行所述在所述FAT文件系统的FAT表中从当前簇开始找下一簇的步骤;当检测结果为是时,读取上述记录的簇的内容,并将所述内容重写到其他存储器中。优选地,所述的装置还包括占用簇判断单元,用于在所述占用簇数获取单元根据所述文件的大小获取该当前被删除文件的占用簇的个数之后,判断所述占用簇的个数是否大于1,若不大于1,则读取所述被删除文件的首簇的内容,并将所述内容重写到其他存储器中;若大于1,则触发所述空闲簇查找判断单元执行操作。优选地,所述空闲簇查找判断单元,具体用于判断该簇是否为空闲簇,当判断结果为是时,判断该簇是否为别的被删除文件的首簇,当判断结果为是时,判断所述别的被删除文件的创建时间是否在所述当前被删除文件的创建时间之后。优选地,所述空闲簇查找判断单元,具体用于从FAT表中查找该簇是否被别的被删除文件占用过,当查找为是时,则判断出该簇为别的被删除文件的首簇;否则,判断出该簇不为别的被删除文件的首簇。优选地,所述结果执行单元,还用于在所述空闲簇查找判断单元的判断的结果都为是时,累加查找的簇的个数;所述内容恢复单元,具体用于检测所述累加查找到的空闲簇的个数是否等于或大于当前被删除文件的占用簇的个数。实施本专利技术的技术方案,具有以下有益效果本专利技术提供的FAT文件系统中被删除文件的恢复方法及装置,在本文档来自技高网
...

【技术保护点】
1.一种FAT文件系统中被删除文件的恢复方法,其特征在于,包括:在FAT文件系统的目录中读取当前被删除文件的首簇、大小和创建时间;根据所述文件的大小获取该当前被删除文件的占用簇的个数;以所述当前被删除文件的首簇为当前簇,在所述FAT文件系统的FAT表中从当前簇开始找下一簇,判断该簇是否为空闲簇,判断该簇是否为别的被删除文件的首簇,判断别的被删除文件的创建时间是否在所述当前被删除文件的创建时间之后;当所述判断的结果都为是时,以该簇为FAT表中的当前簇,执行所述在所述FAT文件系统的FAT表中从当前簇开始找下一簇的步骤;否则,记录下该簇的位置,并累加查找的簇的个数;检测所述累加查找到的簇的个数是否等于当前被删除文件的占用簇的个数,当检测结果为否时,以该簇为FAT表中的当前簇,执行所述在所述FAT文件系统的FAT表中从当前簇开始找下一簇的步骤;当检测结果为是时,读取上述记录的簇的内容,并将所述内容重写到其他存储器中。

【技术特征摘要】

【专利技术属性】
技术研发人员:石全飞
申请(专利权)人:深圳市万兴软件有限公司
类型:发明
国别省市:94

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1