一种可拓展支持压缩文件和解压文件的方法及其系统技术方案

技术编号:25308414 阅读:64 留言:0更新日期:2020-08-18 22:27
本发明专利技术提供了一种可拓展支持压缩文件和解压文件的方法,该方法为:步骤S1、程序初始化时从本地的配置文件读取压缩格式、算法信息,并建立格式注册表和算法注册表,分别将每一种压缩格式、算法注册到对应的格式注册表、算法注册表中;步骤S2、当需要压缩文件时,根据程序中指定文件的拓展名,查找格式注册表的压缩格式,并根据此格式的默认压缩算法进行压缩;步骤S3、当需要解压压缩文件时,根据待解压文件,通过遍历格式注册表寻找到支持的压缩格式,并遍历此支持的格式下的压缩算法寻找到能识别此压缩文件的压缩算法,进行解压。该发明专利技术可快速兼容最新压缩算法,通用性强。

【技术实现步骤摘要】
一种可拓展支持压缩文件和解压文件的方法及其系统
本专利技术涉及数据压缩解压
,特别是一种可拓展支持压缩文件和解压文件的方法及其系统。
技术介绍
目前,对使用者来说解压文件和压缩文件主要运行专有压缩软件来解压文件或者压缩文件,如(winRar压缩软件)。对程序内部来说可以通过进程调用专有软件并传入参数的方式来解压文件和压缩文件。不同的压缩算法只支持解压此算法形成的文件与压缩由此算法形成的压缩文件。压缩格式对应的压缩软件也只能识别自己的压缩包。并且大多数解压软件只是支持主流的压缩文件识别,并且压缩成自己厂商指定的压缩算法与格式的压缩包,如(winRar);但是不支持小众压缩格式的识别、最新压缩算法的使用。另外,程序中使用专有压缩软件需要进程调用对于结果获得、速度都有一定影响。
技术实现思路
为克服上述问题,本专利技术的目的是提供一种可拓展支持压缩文件和解压文件的方法,可快速兼容最新压缩算法,通用性强。本专利技术采用以下方案实现:一种可拓展支持压缩文件和解压文件的方法,所述方法包括如下步骤:步骤S1、程序初始化时从本地的配置文件读取压缩格式、算法信息,并建立格式注册表和算法注册表,分别将每一种压缩格式、算法注册到对应的格式注册表、算法注册表中;其中,所述配置文件主要用于保存压缩格式、压缩算法的信息,并可于后期拓展更新新压缩格式和压缩算法;程序启动时预先读取配置文件获得它支持的全部压缩格式和压缩算法,然后注册到格式注册表和算法注册表中。步骤S2、当需要压缩文件时,根据程序中指定文件的拓展名,查找格式注册表的压缩格式,并根据此格式的默认压缩算法进行压缩;步骤S3、当需要解压压缩文件时,根据待解压文件,通过遍历格式注册表寻找到支持的压缩格式,并遍历此支持的格式下的压缩算法寻找到能识别此压缩文件的压缩算法,进行解压。进一步的,所述步骤S2进一步具体为:若是需要压缩文件,需要指定待压缩的源文件与压缩后的压缩文件名,程序根据压缩文件名的后缀信息到格式注册表中遍历读取支持的压缩格式,默认选择第一个识别到的压缩格式;并根据压缩格式获得对应的算法名称,后到算法注册表中遍历查找此格式的默认压缩算法;然后调用压缩算法将源文件压缩成指定名称的压缩文件。进一步的,所述步骤S3中通过遍历格式注册表寻找到支持的压缩格式,具体为:程序按三种方法遍历格式注册表寻找到支持的压缩格式;所述三种方法分别为文件后缀识别法、文件头与专有函数识别法、Hashmap识别法;所述文件后缀识别法:根据文件名后缀到格式注册表识别压缩格式,来寻找支持的压缩格式;所述文件头与专有函数识别法:通过遍历格式注册表,对于每一种压缩格式若是此压缩格式支持专有函数识别,则调用此函数进行识别,否则查看此压缩格式支持的文件头并与压缩文件的文件头进行比对识别,来寻找支持的压缩格式;其中格式注册表中每种压缩格式的专有函数和文件头识别至少有一种;所述Hashmap识别法:通过HashMap快速依次遍历压缩文件每一个字节识别压缩格式。进一步的,所述步骤S2进一步具体为:当识别出压缩格式后,接着识别压缩算法,根据压缩格式支持的压缩算法到算法注册表寻找到全部支持的压缩算法,并依次调用压缩算法中打开文件方法,如果能打开压缩文件则说明找到压缩格式支持的压缩算法;根据压缩算法调用解压方法解压缩文件。本专利技术还提供了一种可拓展支持压缩文件和解压文件的系统,所述系统包括注册表生成模块、压缩格式查找模块、压缩算法获取模块;所述注册表生成模块,用于程序初始化时从本地的配置文件读取压缩格式、算法信息,并建立格式注册表和算法注册表,分别将每一种压缩格式、算法注册到对应的格式注册表、算法注册表中;所述压缩格式查找模块,用于需要压缩文件时,根据程序中指定文件的拓展名,查找格式注册表的压缩格式,并根据此格式的默认压缩算法进行压缩;所述压缩算法获取模块,用于需要解压压缩文件时,根据待解压文件,通过遍历格式注册表寻找到支持的压缩格式,并遍历此支持的格式下的压缩算法寻找到能识别此压缩文件的压缩算法,进行解压。进一步的,所述压缩格式查找模块进一步具体为:若是需要压缩文件,需要指定待压缩的源文件与压缩后的压缩文件名,程序根据压缩文件名的后缀信息到格式注册表中遍历读取支持的压缩格式,默认选择第一个识别到的压缩格式;并根据压缩格式获得对应的算法名称,后到算法注册表中遍历查找此格式的默认压缩算法;然后调用压缩算法将源文件压缩成指定名称的压缩文件。进一步的,所述压缩算法获取模块中通过遍历格式注册表寻找到支持的压缩格式,具体为:程序按三种方法遍历格式注册表寻找到支持的压缩格式;所述三种方法分别为文件后缀识别法、文件头与专有函数识别法、Hashmap识别法;所述文件后缀识别法:根据文件名后缀到格式注册表识别压缩格式,来寻找支持的压缩格式;所述文件头与专有函数识别法:通过遍历格式注册表,对于每一种压缩格式若是此压缩格式支持专有函数识别,则调用此函数进行识别,否则查看此压缩格式支持的文件头并与压缩文件的文件头进行比对识别,来寻找支持的压缩格式;所述Hashmap识别法:通过HashMap快速依次遍历压缩文件每一个字节识别压缩格式。进一步的,所述压缩算法获取模块进一步具体为:当识别出压缩格式后,接着识别压缩算法,根据压缩格式支持的压缩算法到算法注册表寻找到全部支持的压缩算法,并依次调用压缩算法中打开文件方法,如果能打开压缩文件则说明找到压缩格式支持的压缩算法;根据压缩算法调用解压方法解压缩文件。本专利技术的有益效果在于:1、通过此方法只要编辑配置文件,即可识别小众(比较冷门,使用的人不多)压缩文件包,后期拓展方便,通用性强。2、对于自我程序支持方便,可快速兼容最新压缩算法,并在同一个进程内,容易获得返回值,处理速度快。附图说明图1是本专利技术的方法流程示意图。图2是本专利技术的方法流程原理框图。图3是本专利技术的系统原理框图。具体实施方式下面结合附图对本专利技术做进一步说明。请参阅图1和图2所示,本专利技术的一种可拓展支持压缩文件和解压文件的方法,所述方法包括如下步骤:步骤S1、程序初始化时从本地的配置文件读取压缩格式、算法信息,并建立格式注册表和算法注册表,分别将每一种压缩格式、算法注册到对应的格式注册表、算法注册表中;步骤S2、当需要压缩文件时,根据程序中指定文件的拓展名,查找格式注册表的压缩格式,并根据此格式的默认压缩算法进行压缩;步骤S3、当需要解压压缩文件时,根据待解压文件,通过遍历格式注册表寻找到支持的压缩格式,并遍历此支持的格式下的压缩算法寻找到能识别此压缩文件的压缩算法,进行解压。下面结合一具体实施例对本专利技术作进一步说明:1、程序初始化时读取配置文件获得支持的压缩格式与压缩算法。并分别注册到格式注册表与算法注册表中。其中,所述配置文件主要用于保存压缩格式、压缩算法的信息,并可于后期拓展更新新压缩格式和本文档来自技高网...

【技术保护点】
1.一种可拓展支持压缩文件和解压文件的方法,其特征在于:所述方法包括如下步骤:/n步骤S1、程序初始化时从本地的配置文件读取压缩格式、算法信息,并建立格式注册表和算法注册表,分别将每一种压缩格式、算法注册到对应的格式注册表、算法注册表中;/n步骤S2、当需要压缩文件时,根据程序中指定文件的拓展名,查找格式注册表的压缩格式,并根据此格式的默认压缩算法进行压缩;/n步骤S3、当需要解压压缩文件时,根据待解压文件,通过遍历格式注册表寻找到支持的压缩格式,并遍历此支持的格式下的压缩算法寻找到能识别此压缩文件的压缩算法,进行解压。/n

【技术特征摘要】
1.一种可拓展支持压缩文件和解压文件的方法,其特征在于:所述方法包括如下步骤:
步骤S1、程序初始化时从本地的配置文件读取压缩格式、算法信息,并建立格式注册表和算法注册表,分别将每一种压缩格式、算法注册到对应的格式注册表、算法注册表中;
步骤S2、当需要压缩文件时,根据程序中指定文件的拓展名,查找格式注册表的压缩格式,并根据此格式的默认压缩算法进行压缩;
步骤S3、当需要解压压缩文件时,根据待解压文件,通过遍历格式注册表寻找到支持的压缩格式,并遍历此支持的格式下的压缩算法寻找到能识别此压缩文件的压缩算法,进行解压。


2.根据权利要求1所述的一种可拓展支持压缩文件和解压文件的方法,其特征在于:所述步骤S2进一步具体为:若是需要压缩文件,需要指定待压缩的源文件与压缩后的压缩文件名,程序根据压缩文件名的后缀信息到格式注册表中遍历读取支持的压缩格式,默认选择第一个识别到的压缩格式;并根据压缩格式获得对应的算法名称,后到算法注册表中遍历查找此格式的默认压缩算法;然后调用压缩算法将源文件压缩成指定名称的压缩文件。


3.根据权利要求1所述的一种可拓展支持压缩文件和解压文件的方法,其特征在于:所述步骤S3中通过遍历格式注册表寻找到支持的压缩格式,具体为:程序按三种方法遍历格式注册表寻找到支持的压缩格式;所述三种方法分别为文件后缀识别法、文件头与专有函数识别法、Hashmap识别法;
所述文件后缀识别法:根据文件名后缀到格式注册表识别压缩格式,来寻找支持的压缩格式;
所述文件头与专有函数识别法:通过遍历格式注册表,对于每一种压缩格式若是此压缩格式支持专有函数识别,则调用此函数进行识别,否则查看此压缩格式支持的文件头并与压缩文件的文件头进行比对识别,来寻找支持的压缩格式;
所述Hashmap识别法:通过HashMap快速依次遍历压缩文件每一个字节识别压缩格式。


4.根据权利要求1所述的一种可拓展支持压缩文件和解压文件的方法,其特征在于:所述步骤S3进一步具体为:当识别出压缩格式后,接着识别压缩算法,根据压缩格式支持的压缩算法到算法注册表寻找到全部支持的压缩算法,并依次调用压缩算法中打开文件方法,如果能打开压缩文件则说明找到压缩格式支持的压缩算法;根据压缩算法调用解压方法解压缩文件。


5.一种可拓展支持压缩文件和解压文件的系统...

【专利技术属性】
技术研发人员:刘德建张伟泽何巍巍陈宏展
申请(专利权)人:福建天晴在线互动科技有限公司
类型:发明
国别省市:福建;35

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

1