一种基于匹配树的压缩包解压方法、装置及存储介质制造方法及图纸

技术编号:20484658 阅读:18 留言:0更新日期:2019-03-02 18:53
本发明专利技术提供了一种基于匹配树的压缩包解压方法、装置及存储介质,该方法包括:匹配树构建步骤,基于解压配置文件构建匹配树;解压步骤,读取压缩包中的文件的文件名,使用所述匹配树与所述文件名进行匹配,如果匹配成功,则对所述文件进行解压,如果匹配不成功,则对所述文件不进行解压。从而实现了对需要的文件进行解压,不要的文件不进行解压,大大提高了解压速度,减少了对磁盘的访问次数,提高了磁盘的IO性能,降低了终端设备的能耗,减少了对存储空间的占用,提高了终端设备的运行速度,提高了用户体验。

【技术实现步骤摘要】
一种基于匹配树的压缩包解压方法、装置及存储介质
本专利技术涉及数据处理
,特别是一种基于匹配树的压缩包解压方法、装置及存储介质。
技术介绍
移动互联时代,手机已成为人们最为贴身和常用的工具设备,其所承载的数据也越来越丰富;其中,Android手机作为市场占有率最高、且全球年出货量最大的手机,影响着整个移动互联的市场。随着Android手机的大面积使用,Google公司对于Android的安全也做得越来越严密,安全机制逐年升级,使得对于Android的取证也面临着越来越多的挑战。早在Android5.0开始,root手机的难度开始逐年增大,待到目前最新的Android8.0,安全机制更是进一步提升。国内手机厂商对于手机数据安全的重视程度也是逐年提升,导致无法轻易对手机直接进行root后,再对其数据进行提取,而必须进行数据的备份;包含adbbackup备份以及各个厂商提供的备份工具。备份下来的文件,是一个压缩文件,包含了所有应用的数据,其中含有大量采集过程无需使用的冗余文件,在备份压缩文件进行解压的过程中耗费大量的时间,解压后还必须在大量的文件中,对特定需要的文件进行过滤,查找出需要使用的文件,大大降低了时效性;解压出来冗余的文件还占用大量的存储空间;遇到大数据量的手机,解压大数据量的压缩包,对于移动式设备的续航能力是一个极大的考验,而且无法保证设备运行的持续性,即能耗较高;对于所有存储容量不充裕的设备,还有移动式需求的设备,都存在类似问题,从而导致了终端设备的运行速度较慢,影响了用户体验。因此,传统的备份压缩包解压的方式已经无法满足移动式数据获取对于时效性的较高要求。综上所述,现有技术的缺陷在于:1.解压所有应用备份文件,包含大量冗余文件,浪费有限的存储空间。2.原有解压机制解压整个压缩包的所有文件,存在解压耗时较长,速度缓慢的问题。3.备份文件中包含大量大小不一的文件,解压过程频繁对磁盘进行写入操作,存在IO瓶颈。4.移动式设备电池损耗增大,长时间的解压流程与写入文件,增加设备电量损耗,影响移动设备的续航,降低其持续运行的能力。
技术实现思路
本专利技术针对上述现有技术中的缺陷,提出了如下技术方案。一种基于匹配树的压缩包解压方法,该方法包括:匹配树构建步骤,基于解压配置文件构建匹配树;解压步骤,读取压缩包中的文件的文件名,使用所述匹配树与所述文件名进行匹配,如果匹配成功,则对所述文件进行解压,如果匹配不成功,则对所述文件不进行解压。更进一步地,所述解压配置文件包括多个分组,每个分组包括多条匹配条目,所述匹配条目用于匹配需要解压的文件。更进一步地,每一匹配条目由多个匹配项组成,匹配项之间用“/”作为分割符号,每个匹配项匹配一个文件名或者目录名,所述匹配条目的多个匹配项用于连续匹配文件的完整路径,其中,文件的文件名及路径确定唯一时,所述匹配项与文件的文件名及路径相同,对于可变文件名,匹配项是以“^”开头并以“$”结束的正则表达式。更进一步地,基于解压配置文件构建匹配树的操作为:获取解压配置文件,以解压配置文件的根节点为匹配树的根,依次读取解压配置文件的分组及对应分组下的每一个匹配条目,同一级目录的则在同一层树节点,父子目录对应的则是父子节点,以此构建匹配树。更进一步地,获取解压配置文件的方式为自定义解压配置文件、从本地存储获取解压配置文件、或从云端服务器下载解压配置文件、或从其他相似用户获取解压配置文件。更进一步地,解压步骤的操作为:判断当前是否已读取到压缩包结尾,如果是,则退出解压过程,如果否,则读取文件的文件名,并将文件名按照每一级目录结构进行分割,然后与匹配树进行匹配,所述匹配树顶层对应根目录,第一层对应文件名第一级,如果该目录匹配当前层级的其中一个节点,则继续匹配对应节点的子节点,否则判定为匹配不成功,则匹配过程结束,继续进行压缩包的读取,如果所述匹配树节点以^开头以$结尾,使用模式匹配匹配文件/文件夹,如果匹配不成功,则匹配过程结束,继续进行压缩包的读取,如果匹配到最后一个子节点,文件/文件夹则是需要保存的,则将当前文件解压,或者将该文件夹下的所有文件进行解压,并将该文件夹下的所有文件写入到文件系统中,然后继续进行压缩包的读取。本专利技术还提出了一种基于匹配树的压缩包解压装置,该装置包括:匹配树构建单元,用于基于解压配置文件构建匹配树;解压单元,用于读取压缩包中的文件的文件名,使用所述匹配树与所述文件名进行匹配,如果匹配成功,则对所述文件进行解压,如果匹配不成功,则对所述文件不进行解压。更进一步地,所述解压配置文件包括多个分组,每个分组包括多条匹配条目,所述匹配条目用于匹配需要解压的文件。更进一步地,每一匹配条目由多个匹配项组成,匹配项之间用“/”作为分割符号,每个匹配项匹配一个文件名或者目录名,所述匹配条目的多个匹配项用于连续匹配文件的完整路径,其中,文件的文件名及路径确定唯一时,所述匹配项与文件的文件名及路径相同,对于可变文件名,匹配项是以“^”开头并以“$”结束的正则表达式。更进一步地,基于解压配置文件构建匹配树的操作为:获取解压配置文件,以解压配置文件的根节点为匹配树的根,依次读取解压配置文件的分组及对应分组下的每一个匹配条目,同一级目录的则在同一层树节点,父子目录对应的则是父子节点,以此构建匹配树。更进一步地,获取解压配置文件的方式为自定义解压配置文件、从本地存储获取解压配置文件、或从云端服务器下载解压配置文件、或从其他相似用户获取解压配置文件。更进一步地,解压单元执行的操作为:判断当前是否已读取到压缩包结尾,如果是,则退出解压过程,如果否,则读取文件的文件名,并将文件名按照每一级目录结构进行分割,然后与匹配树进行匹配,所述匹配树顶层对应根目录,第一层对应文件名第一级,如果该目录匹配当前层级的其中一个节点,则继续匹配对应节点的子节点,否则判定为匹配不成功,则匹配过程结束,继续进行压缩包的读取,如果所述匹配树节点以^开头以$结尾,使用模式匹配匹配文件/文件夹,如果匹配不成功,则匹配过程结束,继续进行压缩包的读取,如果匹配到最后一个子节点,文件/文件夹则是需要保存的,则将当前文件解压,或者将该文件夹下的所有文件进行解压,并将该文件夹下的所有文件写入到文件系统中,然后继续进行压缩包的读取。本专利技术还提出了一种计算机可读存储介质,所述存储介质上存储有计算机程序代码,当所述计算机程序代码被计算机执行时执行上述之任一的方法。本专利技术的技术效果为:本专利技术首先通过解压配置文件构建匹配树,然后读取压缩包中的文件的文件名,使用所述匹配树与所述文件名进行匹配,如果匹配成功,则对所述文件进行解压,如果匹配不成功,则对所述文件不进行解压。从而实现了对需要的文件进行解压,不要的文件不进行解压,大大提高了解压速度,减少了对磁盘的访问次数,提高了磁盘的IO性能,降低了终端设备的能耗,减少了对存储空间的占用,提高了终端设备的运行速度,提高了用户体验。附图说明通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显。图1是根据本专利技术的实施例的一种基于匹配树的压缩包解压方法的流程图。图2是根据本专利技术的实施例的匹配树的示意图。图3是根据本专利技术的实施例的Android手机的备份文件解本文档来自技高网
...

【技术保护点】
1.一种基于匹配树的压缩包解压方法,其特征在于,该方法包括:匹配树构建步骤,基于解压配置文件构建匹配树;解压步骤,读取压缩包中的文件的文件名,使用所述匹配树与所述文件名进行匹配,如果匹配成功,则对所述文件进行解压,如果匹配不成功,则对所述文件不进行解压。

【技术特征摘要】
1.一种基于匹配树的压缩包解压方法,其特征在于,该方法包括:匹配树构建步骤,基于解压配置文件构建匹配树;解压步骤,读取压缩包中的文件的文件名,使用所述匹配树与所述文件名进行匹配,如果匹配成功,则对所述文件进行解压,如果匹配不成功,则对所述文件不进行解压。2.根据权利要求1所述的方法,其特征在于,所述解压配置文件包括多个分组,每个分组包括多条匹配条目,所述匹配条目用于匹配需要解压的文件。3.根据权利要求2所述的方法,其特征在于:每一匹配条目由多个匹配项组成,匹配项之间用“/”作为分割符号,每个匹配项匹配一个文件名或者目录名,所述匹配条目的多个匹配项用于连续匹配文件的完整路径,其中,文件的文件名及路径确定唯一时,所述匹配项与文件的文件名及路径相同,对于可变文件名,匹配项是以“^”开头并以“$”结束的正则表达式。4.根据权利要求3所述的方法,其特征在于,基于解压配置文件构建匹配树的操作为:获取解压配置文件,以解压配置文件的根节点为匹配树的根,依次读取解压配置文件的分组及对应分组下的每一个匹配条目,同一级目录的则在同一层树节点,父子目录对应的则是父子节点,以此构建匹配树。5.根据权利要求4所述的方法,其特征在于,获取解压配置文件的方式为自定义解压配置文件、从本地存储获取解压配置文件、或从云端服务器下载解压配置文件、或从其他相似用户获取解压配置文件。6.根据权利要求5所述的方法,其特征在于,解压步骤的操作为:判断当前是否已读取到压缩包结尾,如果是,则退出解压过程,如果否,则读取文件的文件名,并将文件名按照每一级目录结构进行分割,然后与匹配树进行匹配,所述匹配树顶层对应根目录,第一层对应文件名第一级,如果该目录匹配当前层级的其中一个节点,则继续匹配对应节点的子节点,否则判定为匹配不成功,则匹配过程结束,继续进行压缩包的读取,如果所述匹配树节点以^开头以$结尾,使用模式匹配匹配文件/文件夹,如果匹配不成功,则匹配过程结束,继续进行压缩包的读取,如果匹配到最后一个子节点,文件/文件夹则是需要保存的,则将当前文件解压,或者将该文件夹下的所有文件进行解压,并将该文件夹下的所有文件写入到文件系统中,然后继续进行压缩包的读取。7.一种基于匹配树的压缩包解压装置,其特征在于,该装置包括:匹配树构建单元,用于基...

【专利技术属性】
技术研发人员:郑巧亮邱宗炽
申请(专利权)人:厦门市美亚柏科信息股份有限公司
类型:发明
国别省市:福建,35

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

1