Ntfs卷中从指定目录中搜索已删除文件的方法

文档序号:6556153阅读:259来源:国知局
专利名称:Ntfs卷中从指定目录中搜索已删除文件的方法
技术领域
本发明涉及计算机应用领域,尤其涉及一种搜索已删除数据的方法。
背景技术
针对用户错误删除文件或者被他人恶意删除文件等问题,目前出现了各类数据恢复软件,可以帮助用户查找已经删除的文件并恢复,当用户误删除某个文件夹下的文件且需要恢复这些文件时,如果不能定位到这些被删除文件删除前所在的目录,将从根目录开始遍历所有路径,搜索所有已删除文件,这样将增加扫描时间,和降低数据恢复软件的易用性。因此,提供一种快速搜索指定目录中的已删除文件的方法极具实用性。

发明内容
本发明克服了现有技术中的缺点,提供一种可快速搜索指定目录中的已删除文件的方法。
为了解决上述技术问题,通过以下技术方案实现NTFS卷中从指定目录中搜索已删除文件的方法,其包括如下过程A.用户通过输入设备输入需要恢复文件所在路径;B.分解用户输入的路径得到第一层目录名;C.访问根目录的MFT并遍历其90H属性或A0H属性得到上述第一层目录的MFT参考号;D.判断是否已经分解到用户所输入路径的最后一层子目录,如果是进入过程g,否则进入过程e;
E.进一步分解用户输入的路径得到下一层目录的目录名;F.根据得到的上一层目录的MFT参考号访问其MFT并遍历其90H属性或A0H属性得到过程e中所述下一层目录的MFT参考号,然后进入过程d;G.遍历NTFS卷的$MFT文件中的所有MFT并访问一个删除文件,得到其父目录的MFT参考号;H.判断是否遍历完$MFT文件中的所有MFT,如果是转入过程k,如果否进入过程i;I.判断该删除文件父目录或者其任意上层目录的MFT参考号是否和过程f中确定的用户选择的最后一层子目录MFT参考号相等,如果是进入过程j,否则返回过程g;J.确定该文件为搜索目标文件;K.结束。
通过本发明方法可结合用户输入的信息快速查找到用户需要恢复的文件,而无需进行全盘扫描,影响数据恢复速度。


图1是本发明NTFS卷中从指定目录中搜索已删除文件的方法的流程图。
具体实施例方式
下面参照附图1并结合具体例子介绍本发明的方法,这里假设用户输入的目录是C\study\english,即需要修复的文件是在english子目录内。
1.由用户通过键盘输入目录C\study\english;2.根据分隔符“\”分解上述路径的第一层目录名“study”;3.访问该目录MFT并遍历其90H属性或者A0属性得到第一层目录“study”的MFT参考号,假设为m;这里对几个术语进行简单介绍,NTFS卷与FAT卷不同,在NTFS卷中有一个$MFT文件,该文件中存放了卷中所有文件(文件夹)的主文件表(Master File Tabl,MFT),并且一一对应,即每个文件(文件夹)都有自身的MFT参考号。在MFT的属性列表中,30H属性$FILE_NAME;90H属性$INDEX_ROOT;A0H属性$INDEX_ALLOCATION;即通过90H属性或者A0属性可以查找到该文件子目录的MFT参考号,而通过30H属性可以获得该文件父目录的MFT参考号。
4.判断是否已经分解到用户所输入路径的最后一层子目录,如果是进入过程7,否则进入过程5;本例中“study”并非最后一层子目录,进入过程5。
5.进一步分解用户输入的路径得到下一层目录的目录名“english”6.根据得到的上一层目录的MFT参考号m,访问其MFT并遍历其90H属性或A0H属性得到其下一层目录“study”的MFT参考号,假设为n,然后进入过程4;7.遍历NTFS卷的$MFT文件中的所有MFT并访问一个删除文件,通过访问该文件MFT的30H属性得到其父目录的MFT参考号;8.判断该父目录MFT参考号是否与过程6中确定的用户选择的最后一层子目录“study”的MFT参考号n相等,如果是转到过程11,如果否到过程9;9.根据过程8中得到的MFT参考号访问该参考号对应文件父目录的MFT参考号;查找父目录的MFT参考号的方法与国成7中所述一至,都是通过访问该文件MFT的30H属性得到。
10.判断过程9中得到的父目录MFT参考号是否为根目录参考号,如果是跳到过程11,否则跳到过程8;通过过程7、8、9来判断所删除文件是否为目录“study”某层子目录的文件,因为这种文件也是符合用户搜索要求的文件。
11.判断是否遍历完$MFT文件中的所有MFT,如果是转入过程14,如果否进入过程12;该过程判断是否卷中所有已删除的文件已经全部被遍历。
12.判断该删除文件父目录或者其任意上层目录的MFT参考号是否和过程f中确定的用户选择的最后一层子目录“study”的MFT参考号n相等,如果是进入过程13,否则返回过程7;13.确定该文件为搜索目标文件;即为符合用户查找要求的删除文件。
14.结束。
以上步骤仅用以说明而非限制本发明的技术方案。不脱离本发明精神和范围的任何修改或局部替换,均应涵盖在本发明的权利要求范围当中。
权利要求
1.NTFS卷中从指定目录中搜索已删除文件的方法,其特征在于,其包括如下过程a.用户通过输入设备输入需要恢复文件所在路径;b.分解用户输入的路径得到第一层目录名;c.访问根目录的MFT并遍历其90H属性或AOH属性得到上述第一层目录的MFT参考号;d.判断是否已经分解到用户所输入路径的最后一层子目录,如果是进入过程g,否则进入过程e;e.进一步分解用户输入的路径得到下一层目录的目录名;f.根据得到的上一层目录的MFT参考号访问其MFT并遍历其90H属性或AOH属性得到过程e中所述下一层目录的MFT参考号,然后进入过程d;g.遍历NTFS卷的$MFT文件中的所有MFT并访问一个删除文件,得到其父目录的MFT参考号;h.判断是否遍历完$MFT文件中的所有MFT,如果是转入过程k,如果否进入过程i;i.判断该删除文件父目录或者其任意上层目录的MFT参考号是否和过程f中确定的用户选择的最后一层子目录MFT参考号相等,如果是进入过程j,否则返回过程g;j.确定该文件为搜索目标文件;k.结束。
2.根据权利要求1所述的NTFS卷中从指定目录中搜索已删除文件的方法,其特征在于,在上述过程g与h之间包括如下过程g’.判断该父目录MFT参考号是否与过程f中确定的用户选择的最后一层子目录MFT参考号相等,如果是转到过程h,如果否到过程h’;h’.根据g’中得到的MFT参考号访问该参考号对应文件父目录的MFT参考号;h”.判断h’得到的父目录MFT参考号是否为根目录参考号,如果是跳到过程h,否则跳到过程g’。
3.根据权利要求1或2所述的NTFS卷中从指定目录中搜索已删除文件的方法,其特征在于,通过访问文件的30H属性得到其父目录的MFT参考号。
全文摘要
本发明涉及一种搜索计算机中已删除数据的方法。其包括如下过程A.输入需要恢复文件所在路径;B.分解路径得到第一层目录名;C.访问根目录的MFT并遍历其90H属性或AOH属性;D.判断是否已经分解到输入路径的最后一层子目录,如果是进入过程G,否进入过程E;E.进一步分解路径;F.根据上一层目录的MFT参考号访问其MFT并遍历其90H属性或AOH属性,然后进入过程D;G.遍历$MFT文件中的所有MFT并访问一个删除文件;H.判断是否遍历完$MFT文件中的所有MFT,如果是转入过程K,否进入过程I;I.判断该删除文件父目录或者其任意上层目录的MFT参考号是否和过程F中确定的最后一层子目录MFT参考号相等,如果是进入过程J,否则返回过程G;J.确定该文件为搜索目标文件;K.结束。
文档编号G06F17/30GK1920816SQ20061003674
公开日2007年2月28日 申请日期2006年7月28日 优先权日2006年7月28日
发明者涂彦晖 申请人:珠海金山软件股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1