一种多次构建对象树结构的方法及计算机的制作方法

文档序号:6433659阅读:103来源:国知局
专利名称:一种多次构建对象树结构的方法及计算机的制作方法
技术领域
本发明涉及计算机技术领域,具体是指多次构建对象树结构的方法及计算机。
背景技术
在文件恢复过程中,计算机需要扫描磁盘的内容,找到一个文件信息后,生成一个完整的全路径(比如G:\T00l\teSt. exe),传递给建树模块,完成对象树结构建造,此过程存在多次。对于一个根据全路径的建目录结构的通用方法,从根目录进行匹配,向下进行查找,如果不存在,则建其目录结点;如果存在,则建立文件节点。如果当文件数量很大时,特别是同一个目录下有很多文件时,此种方法效率很低。如在同一个目录下有N个文件,每次传递一个路径,将路径分成文件目录结点后,从路径的左边开始,与文件目录树进行查找文件,如果存在文件,进行下一个文件目录的查找文件,不存在文件,则新建文件目录。那么完成本目录下的文件建树(即该文件对象的树结构建造)过程则需要N次其前级文件目录的查找过程,因此,建树过程(即构建文件目录)的效率很低。

发明内容
本发明的主要目的是提供一种多次构建对象树结构的方法及计算机,能够快速多次构建对象树结构。本发明解决其技术问题所采用的技术方案是—种多次构建对象树结构的方法,其包括S110、从倒数第二层开始获取需要构建文件目录的文件的当前分层的编码号;S120、在保存的所有编码中查找是否存在所述编码号,如果不存在所述编码号,则执行步骤S130 ;S130、在当前分层新建目录结点,完成该当前分层的新建目录结构建造,并保存该当前分层的编码号,根据需要构建文件目录的文件的上一分层的内容获取该上一分层的编码号,然后再执行步骤S120。优选地,根据所述步骤S120的执行结果,如果存在所述编码号,则执行步骤S140 ;S140、根据所述编码号建立所述文件的目录结构;S150、判断所述当前分层的下一分层有没有未指定父文件目录的目录结点,如果有,则指定该下一分层的父文件目录的目录结点,如果没有,则完成该文件的目录结构的建造。优选地,在所述步骤S130中,所述根据需要构建文件目录的文件的上一分层的内容获取该上一分层的编码号的步骤具体为判断所述上一分层内容是否为空,如果是则完成该文件的目录结构的建造,如果否则获取并根据所述上一分层的内容生成该上一分层的编码号,然后再执行步骤S120。
优选地,所述步骤S130的保存该当前分层的编码号的步骤之后还包括查找该当前分层的下一分层,判断所述下一分层有没有未指定父文件目录的目录结点,如果有,则指定该下一分层的父文件目录的目录结点,然后执行所述判断所述上一分层内容是否为空的步骤;如果没有,则完成该文件的目录结构的建造,然后执行所述判断所述上一分层内容是否为空的步骤。优选地,所述获取需要构建文件目录的文件的当前分层的编码号,具体包括按Base64编码,将该当前分层的内容编码转换成Ansi编码,将该当前分层的内容的分层号放在第一位,生成该当前分层的内容的编码号;所述获取并根据所述上一分层的内容生成该上一分层的编码号,具体包括按 Base64编码,将该上一分层的内容编码转换成Ansi编码,将该上一分层的内容的分层号放在第一位,生成该上一分层的内容的编码号。本发明还提供一种计算机,包括编码号获取单元,用于从倒数第二层开始获取需要构建文件目录的文件的当前分层的编码号;编码查找单元,用于在保存的所有编码中查找是否存在所述编码号,如果不存在所述编码号,则触发目录构建单元;目录构建单元,用于在当前分层新建目录结点,完成该当前分层的新建目录结构建造,并保存该当前分层的编码号,根据需要构建文件目录的文件的上一分层的内容获取该上一分层的编码号,然后再启动所述编码查找单元。优选地,所述计算机还包括下分层处理单元,用于根据所述编码号建立所述文件的目录结构,判断所述下一分层有没有未指定父文件目录的目录结点,如果有,则指定该下一分层的父文件目录的目录结点,如果没有,则完成该文件的目录结构的建造;优选地,所述目录构建单元,用于判断所述上一分层内容是否为空,如果是则完成该文件的目录结构的建造,如果否则获取并根据所述上一分层的内容生成该上一分层的编码号,然后触发所述编码查找单元。优选地,所述目录构建单元,还用于查找该当前分层的下一分层,判断所述下一分层有没有未指定父文件目录的目录结点,如果有,则指定该下一分层的父文件目录的目录结点,然后执行所述判断所述上一分层内容是否为空的步骤;如果没有,则完成该文件的目录结构的建造,然后再判断所述上一分层内容是否为空。优选地,所述编码号获取单元,具体用于按Base64编码,将该当前分层的内容编码转换成Ansi编码,将该当前分层的内容的分层号放在第一位,生成该当前分层的内容的编码号,或者,按Base64编码,将该上一分层的内容编码转换成Ansi编码,将该上一分层的内容的分层号放在第一位,生成该上一分层的内容的编码号。实施本发明的技术方案,具有以下有益效果本发明提供的多次构建对象树结构的方法及计算机,在存在多次建树(树即为文件目录)的过程中,从第二次构建开始,又是一个完整的全路径,建文件目录结点的时候,只要找到已存在文件目录结点(不一定到根目录结点),就完成了此次全路径文件的目录建造过程,准备下一个全路径的文件目录的建造过程,能够快速多次构建对象树结构,提高用户浏览文件的效率,并且不改变原来文件的结构。


图1为本发明实施例提供的方法流程图;图2为本发明实施例提供的计算机的结构示意图;本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施例方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。本发明实施提供一种多次构建对象树结构的方法,该方法的步骤通过计算机执行,如图1所示,该方法包括步骤S110、从倒数第二层开始获取需要构建文件目录的文件的当前分层的编码号;具体地,根据需要构建文件目录的文件的全路径目录,确定最大级分层内容,从该全路径目录的根目录开始从上往下分层,并从倒数第二分层开始,获取当前分层的编码号; 进一步地,从倒数第二分层开始,按Base64编码,将该当前分层的内容编码转换成Ansi编码,将该当前分层的内容的分层号放在第一位,生成该当前分层的内容的编码号。比如,在 "C:\Newl\New2\a. txt”中,C:\Newl\New2\a. txt为全路径,将其根目录开始从上往下分层分为四层,即,“C:”为第0层、‘‘Newl”为第1层、“New2”为第2层、‘‘a. txt”为第3层,那么 “News2”为倒数第二层,“News2”的文件目录的编码号为:2+( “New2”的Ansi编码);该不同层生成的编码号以及不同内容生成的编码号都是唯一的,只有在同一层且相同内容生成的编码号才会相同。需要说明的是,本发明实施例中定义的全路径目录包括文件名,S卩,比如全路径 "C:\Newl\New2\a. txt”,是包括文件名a. txt,因此可以分四层,步骤SllO将从倒数第二层开始获取需要构建文件目录的文件的当前分层的编码号;若本发明实施例中定义的全路径目录不包括文件名,即,比如全路径“C: \Newl\New2”,没有包括文件名,只可以分三层,那么本发明实施例的步骤SllO将从倒数第一层开始获取需要构建文件目录的文件的当前分层的编码号。因此,本发明实施例不限于从倒数第二层开始,只要从紧贴文件名的一层开始作为当前分层,获取需要构建文件目录的文件的当前分层的编码号,均应包含在本发明的保护范围之内。S120、在保存的所有编码中查找是否存在所述编码号;具体地,该计算机预先设有用于保存编码的临时文件目录编码号存储列表,该所述临时文件目录编码号存储列表中保存的所有编码都对应有目录结点,可供计算机构建文件的目录结构。S130、如果不存在所述编码号,则在当前分层新建目录结点,完成当前分层的新建目录结构建造,并保存当前分层的编码号,然后执行步骤S150 ;如果存在所述编码号,则执行步骤S140;在其他的实施例中,进一步的,所述步骤S130中的完成当前分层的新建目录结构建造,并保存当前分层的编码号,之后,进一步执行步骤S140。S140、根据所述编码号建立所述文件的目录结构;查找该当前分层的下一分层,判断所述下一分层有没有未指定父文件目录的目录结点,如果有,则指定该下一分层的父文件目录的目录结点,如果没有,则完成该文件的目录结构的建造;S150、根据需要构建文件目录的文件的上一分层的内容获取该上一分层的编码号;然后执行步骤S120 ;在其他的实施例中,步骤S150具体地,判断所述上一分层内容是否为空,如果是则完成该文件的目录结构的建造,如果否则获取并根据所述上一分层的内容生成该上一分层的编码号,然后再执行步骤S120 ;需要说明的是,执行步骤S150时,该上一分层已经成为当前处理的分层,即当前分层变为了该上一分层;所述当前分层内容是否为空,即所述当前分层是否为第0层。还需要说明的是,获取并根据所述上一分层的内容生成该上一分层的编码号的原理与步骤SllO的一样,按Base64编码,将该当前分层的内容编码转换成Ansi编码,将该当前分层的内容的分层号放在第一位,生成该当前分层的内容的编码号。本发明提供的多次构建对象树结构的方法,在存在多次建树(树即为文件目录) 的过程中,从第二次开始,又是一个完整的全路径,建文件目录结点的时候,只要找到已存在的文件目录结点(不一定到根目录结点),即在保存的所有编码中查找到存在所述编码号,就完成了此次全路径建文件目录的过程,准备下一个全路径的建文件目录的过程,能够快速多次构建对象树结构,提高用户浏览文件的效率,并且不改变原来文件的结构。本发明实施例还提供一种计算机,该计算机用于执行上述方法实施例提供的步骤,如图2所示,该计算机包括编码号获取单元210,用于从倒数第二层开始获取需要构建文件目录的文件的当前分层的编码号;编码查找单元220,用于在保存的所有编码中查找是否存在所述编码号,如果不存在所述编码号,则触发目录构建单元;目录构建单元230,用于在当前分层新建目录结点,完成该当前分层的新建目录结构建造,并保存该当前分层的编码号,根据需要构建文件目录的文件的上一分层的内容获取该上一分层的编码号,然后再启动所述编码查找单元。在其他实施例中,进一步的,所述计算机还包括下分层处理单元M0,用于根据所述编码号建立所述文件的目录结构,判断所述下一分层有没有未指定父文件目录的目录结点,如果有,则指定该下一分层的父文件目录的目录结点,如果没有,则完成该文件的目录结构的建造;在其他实施例中,具体的,所述目录构建单元230,用于判断所述上一分层内容是否为空,如果是则完成该文件的目录结构的建造,如果否则获取并根据所述上一分层的内容生成该上一分层的编码号,然后触发所述编码查找单元。在其他实施例中,进一步的,所述目录构建单元230,还用于查找该当前分层的下一分层,判断所述下一分层有没有未指定父文件目录的目录结点,如果有,则指定该下一分层的父文件目录的目录结点,然后执行所述判断所述上一分层内容是否为空的步骤;如果没有,则完成该文件的目录结构的建造,然后再判断所述上一分层内容是否为空。在其他实施例中,更为具体的,所述编码号获取单元210,具体用于按Base64编码,将该当前分层的内容编码转换成Ansi编码,将该当前分层的内容的分层号放在第一位,生成该当前分层的内容的编码号,或者,按Base64编码,将该上一分层的内容编码转换成Ansi编码,将该上一分层的内容的分层号放在第一位,生成该上一分层的内容的编码号。下面提供上述方法和计算机的应用实施例。例如扫描到3个完整的全路径,依次传入G:\DirO\l.txtG:\DirO\Dirl\2.txtG:\Dirl\Dir2\3.txt先创建临时文件目录编码号存储列表;第一条全路径文件(G:\DirO\l. txt)。1)先传入第一条,将其分层,分别为”6:”,”040”,“1.丨#”,分层结果分别为 0,1,2 ;2)取1层(即倒数第二层)的分层内容“DirO”,生成编码号为:10051035 ;3)在临时文件目录编码号存储列表中查找该编码号,通过该编码号10051035 发现不存在此文件(G:\DirO\l.txt)的目录结点,则建立此文件的目录结点(nodeDirO)。 并在临时文件目录编码号存储列表中保存此编码号(10051035)和对应的目录结点 (nodeDirO)。4)取上一层内容,即:“G:”,生成编码号为=000202 ;5)在临时文件目录编码号存储列表中查找,通过该编码号000202发现不存在此文件(G:\Dir0\l.txt)的目录结点。则建立该文件的目录结点(nodeG)。并在临时文件目录编码号存储列表中保存此编码号(00020 和对应的目录结点(nodeG)。6)查找下一层有没有未指定父文件目录结点的目录结点。发有一个nodeDirO,没有指定父结点,将其指定为nodeG的子结点。7)判断当前目录结点是否为第0层,发现此层为第0层。则完成第一条建树过程。第二条全路径文件(G:\DirO\Dirl\2. txt)。1)传入第二条,将其分层,分别为”6:”,”0化0”,“0化1”,“24対”,分层级别分别为=0,1,2,3 ;2)取2层(即倒数第二层)的分层内容“Dirl”,生成编码号为20051039;3)在临时文件目录编码号存储列表中查找,通过该编码号20051039发现不存在此文件(G:\DirO\Dirl\2.txt)的目录结点。则建立该文件的目录结点(nodeDirl)。 并在临时文件目录编码号存储列表中保存此编码号O0051039)和对应文件目录结点 (nodeDirl)。4)取上一层内容,即:“Dir0”,生成编码号为:10051035 ;5)在临时文件目录编码号存储列表中查找,通过编码号10051035发现存在此文件(G:\DirO\Dirl\2.txt)的目录结点。则取出该文件的目录结点(nodeDirO)。6)查找下一层有没有未指定父文件目录结点的文件目录结点。发有一个 nodeDirl,没有指定父结点,将其指定为nodeDirO的子结点。7)已经找到已存在的文件的目录结点,则完成第二条建树过程。第三条全路径文件(G:\Dirl\Dir2\3.txt)
1)传入第二条,将其分层,分别为”6:”,”0&1”,”042”,“34#”,分层级别分别为=0,1,2,3 ;2)取2层(即倒数第二层)的分层内容“Dir2”,生成编码号为30051043;3)在临时文件目录编码号存储列表中查找,通过编码号30051043发现不存在此文件(G:\Dirl\Dir2\3.txt)的目录结点。则建立该文件的目录结点(nodeDir2)。并在临时文件目录编码号存储列表中保存此编码号(30051043)和对应的目录结点(nodeDir2)。4)取上一分层的内容,S卩“Dirl”,生成编码号为20051039 ;5)在计算机的临时文件目录编码号存储列表中查找,通过编码号20051039发现不存在此文件(G:\Dirl\Dir2\3. txt)的目录结点。则建立该文件的目录结点(nodeDirl)。 并在临时文件目录编码号存储列表中保存此编码号O0051039)和对应文件目录结点 (nodeDirl) 06)查找下一层有没有未指定父文件目录结点的文件目录结点。发有一个 n0deDir2,没有指定父结点,将其指定为nodeDirl的子结点。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种多次构建对象树结构的方法,其特征在于,包括S110、从倒数第二层开始获取需要构建文件目录的文件的当前分层的编码号;S120、在保存的所有编码中查找是否存在所述编码号,如果不存在所述编码号,则执行步骤S130 ;S130、在当前分层新建目录结点,完成该当前分层的新建目录结构建造,并保存该当前分层的编码号,根据需要构建文件目录的文件的上一分层的内容获取该上一分层的编码号,然后再执行步骤S120。
2.如权利要求1所述的方法,其特征在于,根据所述步骤S120的执行结果,如果存在所述编码号,则执行步骤S140;S140、根据所述编码号建立所述文件的目录结构;S150、判断所述当前分层的下一分层有没有未指定父文件目录的目录结点,如果有,则指定该下一分层的父文件目录的目录结点,如果没有,则完成该文件的目录结构的建造。
3.如权利要求2所述的方法,其特征在于,在所述步骤S130中,所述根据需要构建文件目录的文件的上一分层的内容获取该上一分层的编码号的步骤具体为判断所述上一分层内容是否为空,如果是则完成该文件的目录结构的建造,如果否则获取并根据所述上一分层的内容生成该上一分层的编码号,然后再执行步骤S120。
4.如权利要求3所述的方法,其特征在于,所述步骤S130的保存该当前分层的编码号的步骤之后还包括查找该当前分层的下一分层,判断所述下一分层有没有未指定父文件目录的目录结点,如果有,则指定该下一分层的父文件目录的目录结点,然后执行所述判断所述上一分层内容是否为空的步骤;如果没有,则完成该文件的目录结构的建造,然后执行所述判断所述上一分层内容是否为空的步骤。
5.如权利要求4所述的方法,其特征在于,所述获取需要构建文件目录的文件的当前分层的编码号,具体包括按Base64编码,将该当前分层的内容编码转换成Ansi编码,将该当前分层的内容的分层号放在第一位,生成该当前分层的内容的编码号;或者所述获取并根据所述上一分层的内容生成该上一分层的编码号,具体包括按Base64 编码,将该上一分层的内容编码转换成Ansi编码,将该上一分层的内容的分层号放在第一位,生成该上一分层的内容的编码号。
6.一种计算机,其特征在于,包括编码号获取单元,用于从倒数第二层开始获取需要构建文件目录的文件的当前分层的编码号;编码查找单元,用于在保存的所有编码中查找是否存在所述编码号,如果不存在所述编码号,则触发目录构建单元;目录构建单元,用于在当前分层新建目录结点,完成该当前分层的新建目录结构建造, 并保存该当前分层的编码号,根据需要构建文件目录的文件的上一分层的内容获取该上一分层的编码号,然后再启动所述编码查找单元。
7.如权利要求6所述计算机,其特征在于,还包括下分层处理单元,用于根据所述编码号建立所述文件的目录结构,判断所述下一分层有没有未指定父文件目录的目录结点, 如果有,则指定该下一分层的父文件目录的目录结点,如果没有,则完成该文件的目录结构的建造;
8.如权利要求7所述计算机,其特征在于,所述目录构建单元,用于判断所述上一分层内容是否为空,如果是则完成该文件的目录结构的建造,如果否则获取并根据所述上一分层的内容生成该上一分层的编码号,然后触发所述编码查找单元。
9.如权利要求8所述的计算机,其特征在于,所述目录构建单元,还用于查找该当前分层的下一分层,判断所述下一分层有没有未指定父文件目录的目录结点,如果有,则指定该下一分层的父文件目录的目录结点,然后执行所述判断所述上一分层内容是否为空的步骤;如果没有,则完成该文件的目录结构的建造,然后再判断所述上一分层内容是否为空。
10.如权利要求9所述的计算机,其特征在于,所述编码号获取单元,具体用于按 Base64编码,将该当前分层的内容编码转换成Ansi编码,将该当前分层的内容的分层号放在第一位,生成该当前分层的内容的编码号,或者,按Base64编码,将该上一分层的内容编码转换成Ansi编码,将该上一分层的内容的分层号放在第一位,生成该上一分层的内容的编码号。
全文摘要
本发明涉及一种多次构建对象树结构的方法及计算机,该方法包括S110、从倒数第二层开始获取需要构建文件目录的文件的当前分层的编码号;S120、在保存的所有编码中查找是否存在所述编码号,如果不存在所述编码号,则执行步骤S130;S130、在当前分层新建目录结点,完成该当前分层的新建目录结构建造,并保存该当前分层的编码号,根据需要构建文件目录的文件的上一分层的内容获取该上一分层的编码号,然后再执行步骤S120。本发明能够快速多次构建对象树结构,提高用户浏览文件的效率,并且不改变原来文件的结构。
文档编号G06F17/30GK102298645SQ20111028138
公开日2011年12月28日 申请日期2011年9月21日 优先权日2011年9月21日
发明者余巍际 申请人:深圳市万兴软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1