CN102054038B - 一种文件解压方法、装置及移动终端 - Google Patents
一种文件解压方法、装置及移动终端 Download PDFInfo
- Publication number
- CN102054038B CN102054038B CN201010615127.6A CN201010615127A CN102054038B CN 102054038 B CN102054038 B CN 102054038B CN 201010615127 A CN201010615127 A CN 201010615127A CN 102054038 B CN102054038 B CN 102054038B
- Authority
- CN
- China
- Prior art keywords
- file
- decompress
- ion
- array
- compressed package
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种文件解压方法,包括:读取指定目录下的所有压缩包;在所述读取的压缩包中查找指定类型的文件;根据所述查找到的指定类型的文件的文件信息,创建相应的目标文件夹;将所述查找到的指定类型的文件解压至所述相应的目标文件夹中。本发明实施例还公开了一种文件解压装置及移动终端。采用本发明,可一次性、自动地解压用户指定目录下的所有压缩包中指定类型的文件,且可灵活创建相应的目标文件夹,减少错误率,提高解压效率,节省人力资源,提升用户体验。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种文件解压方法、装置及移动终端。
背景技术
压缩,是利用算法将文件有损或无损地处理,以达到保留最多文件信息,令文件体积变小,减少文件的磁盘占用空间,且利于实现文件的快速传输。被压缩后的文件被称为“压缩包”。对应于压缩过程,将“压缩包”还原为压缩前的文件的过程,为解压过程。
目前,各种移动终端均支持压缩机制,比如:现有的移动终端均支持ZIP(一种计算机文件的压缩算法)、RAR(一种数据压缩与归档打包、解压算法)等压缩算法。使用现有的压缩算法对文件进行解压过程中,若仅对压缩包中的某些或某类文件进行解压时,需要用户手动地打开相应压缩包,查找到该某些或某类文件,然后手动地创建目标文件夹,再将查找到的文件解压至创建的目标文件夹中。以RAR压缩包为例,比如:设定移动终端的某目录下共包含两个RAR压缩包,分别为压缩包1和压缩包2,两个压缩包内均包含一个图标文件,若用户想要对压缩包内的图标文件进行解压,则需要手动地到该目录下找到两个压缩包,分别打开压缩包1和压缩包2,从中查找到想要解压的图标文件,然后手动的创建目标文件夹1和目标文件夹2,将从压缩包1中查找到的图标文件解压至目标文件夹1,将从压缩包2中查找到的图标文件解压至目标文件夹2。发明人发现,现有的文件解压方案主要存在以下缺陷:
1、现有的文件解压方案不接受用户对解压文件或解压文件类型的指定,因此,无法自动对指定文件或指定文件类型进行解压,仅能由用户根据自己的需要手动地对压缩包内的文件进行过滤和筛选,且仅能单个文件地、逐个地解压查找到的文件,这样,耗费了大量资源,操作繁琐且效率低,用户体验性低;
2、解压过程中,现有的文件解压方案无法灵活的创建相应的解压路径及目标文件夹,而需要用户手动地创建对应的目标文件夹存放解压后的文件,这种通过人为创建的方式,既耗费人力、降低效率,同时,又易产生错误。
发明内容
本发明实施例所要解决的技术问题在于,提供一种文件解压方法、装置及移动终端,可一次性、自动解压用户指定目录下的所有压缩包中指定类型的文件,且可灵活创建相应的目标文件夹,减少错误率,提高解压效率,节省人力资源,提升用户体验。
为了解决上述技术问题,本发明实施例提供了一种文件解压方法,包括:
读取指定目录下的所有压缩包;
在所述读取的压缩包中查找指定类型的文件;
根据所述查找到的指定类型的文件的文件信息,创建相应的目标文件夹;
将所述查找到的指定类型的文件解压至所述相应的目标文件夹中。
其中,所述读取指定目录下的所有压缩包,包括:通过递归算法提取指定目录下的所有压缩包;将所述提取的压缩包预读取至内存中。
其中,所述在所述读取的压缩包中查找指定类型的文件,包括:
按文件类型,将内存中每个压缩包的文件划分成至少一个数组,每个数组对应一种文件类型;
对所述各个数组进行快速排序;
根据所述快速排序的结果,依次从每个压缩包中查找与所述指定类型对应的数组;
获取所述查找到的数组中的所有文件的文件信息;其中,所述文件信息包括以下信息中的任一种或多种:文件名称、存储路径、文件内容。
其中,所述根据所述查找到的指定类型的文件的文件信息,创建相应的目标文件夹,包括:根据所述获取的文件的存储路径,创建相应的目标文件夹;
所述将所述查找到的指定类型的文件解压至所述相应的目标文件夹中,包括:
根据所述获取的文件的文件名称,在所述目标文件夹中创建以所述文件名称命名的目标文件;
解压所述获取的文件的文件内容;
将所述解压后的文件内容写入所述目标文件中。
其中,所述读取指定目录下的所有压缩包之前,还包括:预先接收用户对解压目录的指定和解压文件类型的指定。
相应地,本发明实施例还提供了一种文件解压装置,包括:
读取模块,用于读取指定目录下的所有压缩包;
查找模块,用于在所述读取模块读取的压缩包中查找指定类型的文件;
创建模块,用于根据所述查找模块查找到的指定类型的文件的文件信息,创建相应的目标文件夹;
解压模块,用于将所述查找模块查找到的指定类型的文件解压至所述创建模块创建的相应的目标文件夹中。
其中,所述读取模块包括:提取单元,用于通过递归算法提取指定目录下的所有压缩包;预读取单元,用于将所述提取单元提取的压缩包预读取至内存中。
其中,所述查找模块包括:
分组单元,用于按文件类型,将内存中每个压缩包的文件划分成至少一个数组,每个数组对应一种文件类型;
快速排序单元,用于对所述分组单元划分成的各个数组进行快速排序;
查找单元,用于根据所述快速排序单元的快速排序结果,依次从每个压缩包中查找与所述指定类型对应的数组;
获取单元,用于获取所述查找单元查找到的数组中的所有文件的文件信息,所述文件信息包括以下信息中的任一种或多种:文件名称、存储路径、文件内容;
所述创建模块,用于根据所述获取单元获取的文件的存储路径,创建相应的目标文件夹;
所述解压模块包括:
文件创建单元,用于根据所述获取单元获取的文件的文件名称,在所述创建模块创建的目标文件夹中创建以所述文件名称命名的目标文件;
解压单元,用于解压所述获取单元获取的文件的文件内容;
写单元,用于将所述解压单元解压后的文件内容写入所述文件创建单元创建的目标文件中。
其中,所述装置还包括:接收模块,用于预先接收用户对解压目录的指定和解压文件类型的指定。
相应地,本发明实施例还提供了一种移动终端,包括:上述的文件解压装置。
实施本发明实施例,具有如下有益效果:
1、本发明实施例通过读取指定目录下的所有压缩包,并将读取的压缩包中指定类型的文件解压至自动创建的相应目标文件夹中,实现了一次性、自动地对多个文件的解压,避免了手动操作所耗费的资源和出现的错误,提高了文件解压效率,提升了用户体验;
2、本发明实施例中,用户只需要指定需要解压的目录和解压文件的类型,本发明实施例的方案即可快速将指定类型的文件解压至相应目标文件夹中,方便用户对解压后的指定类型的文件的查找和使用,提高了自动化程度,提升了用户体验。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的文件解压装置的第一实施例的结构示意图;
图2为本发明的文件解压装置的第二实施例的结构示意图;
图3为本发明的文件解压装置中的读取模块的实施例的结构示意图;
图4为本发明的文件解压装置中的查找模块的实施例的结构示意图;
图5为本发明的文件解压装置中的解压模块的实施例的结构示意图;
图6为本发明的文件解压方法的第一实施例的流程图;
图7为本发明的文件解压方法的第二实施例的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种移动终端,该移动终端包括:
文件解压装置,用于读取指定目录下的所有压缩包,在所述读取的压缩包中查找指定类型的文件,根据所述查找到的指定类型的文件的文件信息,创建相应的目标文件夹,将所述查找到的指定类型的文件解压至所述相应的目标文件夹中。
具体实现中,移动终端向用户提供指定界面,该指定界面可以为简单的系统操作窗口,也可以为可视化界面,用户可在移动终端提供的指定界面上,输入指定的解压目录,比如:用户在移动终端提供的界面上输入“E:/”,则指定了移动终端的E盘为指定解压目录;此外,用户还可在移动终端提供的指定界面上输入指定类型的解压文件,由于文件类型的体现为文件格式,因此,用户输入指定的文件格式,即指定了文件类型;比如:用户在移动终端提供的指定界面上输入“.ico”,即指定了后缀(扩展名)为“.ico”的文件,该文件类型为图标文件。当用户完成了上述对解压目录和解压文件类型的指定后,所述移动终端的文件解压装置接收用户的指定,并根据用户的指定,一次性、自动地将E盘下的所有压缩包内的后缀为“.ico”的图标文件解压出来,分别存放于E盘下、以各压缩包的名称命名的目标文件夹内,比如:设定E盘下共有三个压缩包,分别为压缩包1、压缩包2和压缩包3,其中,压缩包1中包含图标文件一,压缩包2中包含图标文件二,压缩包3中包含图标文件三,则所述移动终端的文件解压装置在E盘下创建目标文件夹1(与压缩包1的名称相同),将图标文件一解压至目标文件夹1中;所述移动终端的文件解压装置在E盘下创建目标文件夹2(与压缩包2的名称相同),将图标文件二解压至目标文件夹2中;所述移动终端的文件解压装置在E盘下创建目标文件夹3(与压缩包3的名称相同),将图标文件三解压至目标文件夹3中。这样,用户可在E盘下对应的目标文件夹中查找和使用自己需要的图标文件,并且可清楚的知道该图标文件的解压来源。可以理解的是,本发明实施例中,用户还可指定某一文件,比如:在移动终端提供的指定界面上输入某文件的文件名,所述移动终端的文件解压装置也可通过上述解压过程对该单个文件进行解压,其过程类似分析,在此不赘述。
需要说明的是,本发明实施例的移动终端,包括但不限于以下终端中的任一种或多种:手机, PDA(Personal Digital Assistant,个人数码助理),PC(Personal Computer,个人电脑),车载终端。由于Android系统(一种应用于移动终端的开源操作系统)为移动终端常用的操作系统,因此,优选地,本发明实施例的移动终端为下的移动终端,本发明实施例的压缩包为APK(Android系统下的压缩包格式)压缩包,除特别说明外,本发明的后续实施例均以Android手机端的APK压缩包为例进行说明。
本发明实施例中,用户只需要指定需要解压的目录和解压文件的类型,本发明实施例的方案即可快速将指定类型的文件解压至相应目标文件夹中,方便用户对解压后的指定类型的文件的查找和使用,提高了自动化程度,提升了用户体验。
为了更清楚的说明本发明,下面将对本发明的移动终端中的文件解压装置进行详细介绍。
请参见图1,为本发明的文件解压装置的第一实施例的结构示意图;所述文件解压装置包括:
读取模块10,用于读取指定目录下的所有压缩包。
具体实现中,所述读取模块10根据用户对解压目录的指定,将所述指定目录下的所有APK压缩包读取出来;比如:用户指定了移动终端的E盘为指定的解压目录;设定E盘下共有三个APK压缩包,分别为APK压缩包1、APK压缩包2和APK压缩包3,则所述读取模块10将所述三个APK压缩包一并读取出来。
具体地,所述读取模块10的读取过程为Android手机端的内存预读取过程,具体过程为:扫描系统中指定目录下的所有文件,过滤其他非压缩文件,从中提取所述指定目录下的所有APK压缩包;调用第三方工具读取所有APK压缩包;根据第三方工具的实体类存储方式,内存分配存储空间;将第三方工具读取的所有APK压缩包以实体类方式存储于内存分配的空间中。需要说明的是,所述第三方工具可以为Apache(一种服务器软件)工具包,其实体类为枚举类型,所述读取模块10通过调用Apache工具包的API(Application Programming Interface,应用程序编程接口)接口,使用Apache工具包进行APK压缩包的读取,并以枚举类型存储于内存中。这种读取方式相对于现有技术中直接使用Android系统中的Java程序的读取方式,其读取的速度更快,效率更高。当然,所述读取模块10也可以采用现有技术中的Java程序进行预读取,其读取过程与现有技术相同,在此不赘述。
查找模块20,用于在所述读取模块10读取的压缩包中查找指定类型的文件。
具体实现中,所述查找模块20遍历内存中的枚举类型,查找并过滤出指定类型的文件,并获取查找到的文件的文件信息,其中,所述文件信息包括以下信息中的任一种或多种:文件名称、存储路径、文件内容。比如:依上述例子,设定APK压缩包1中包含图标文件一,APK压缩包2中包含图标文件二,APK压缩包3中包含图标文件三。若用户指定了后缀为“.ico”的图标文件,则所述查找模块20遍历内存中的枚举类型,从各个APK压缩包中查找出图标文件,并获取各图标文件的文件信息。可以理解的是,此处图标文件仅为举例,当用户指定了其他类型文件或其他单个的文件时,可类似分析,在此不赘述。
创建模块30,用于根据所述查找模块20查找到的指定类型的文件的文件信息,创建相应的目标文件夹。
具体实现中,在所述查找模块20获取到指定类型的文件的文件信息后,所述创建模块30则根据所述指定类型的文件的存储路径,创建相应的目标文件夹。依上述例子,比如:所述查找模块20获取到图标文件一的存储路径为:“E:/APK压缩包1”,所述创建模块30根据图标文件一的存储路径,在E盘下创建一个以APK压缩包1的名称命名的目标文件夹1(该目标文件夹1的名称与APK压缩包1的名称相同)。同理,所述创建模块30根据图标文件二、图标文件三的存储路径,创建相应的目标文件夹2和目标文件夹3。此处,所述创建模块30根据指定类型的文件的存储路径,创建相应的目标文件夹,可使解压的指定类型的文件被有序的存放,方便用户的查找和使用。
解压模块40,用于将所述查找模块20查找到的指定类型的文件解压至所述创建模块30创建的相应的目标文件夹中。
具体实现中,所述解压模块40将所述查找模块20查找到的指定类型的文件解压至所述创建模块30创建的相应的目标文件夹中。依上述例子,所述解压模块40将所述查找模块20查找到的图标文件一解压至所述创建模块30创建的目标文件夹1中,将所述查找模块20查找到的图标文件二解压至所述创建模块30创建的目标文件夹2中,将所述查找模块20查找到的图标文件三解压至所述创建模块30创建的目标文件夹3中。
本发明实施例可一次性、自动的解压用户指定目录下的所有压缩包中指定类型的文件,且可灵活创建相应的目标文件夹,减少了错误率,提高了解压效率,节省了人力资源,提升了用户体验。
请参见图2,为本发明的文件解压装置的第二实施例的结构示意图;与上一实施例相同,所述文件解压装置包括:读取模块10、查找模块20、创建模块30和解压模块40。本实施例中,所述文件解压装置还包括:
接收模块50,用于预先接收用户对解压目录的指定和解压文件类型的指定。
具体实现中,移动终端向用户提供指定界面,该指定界面可以为简单的系统操作窗口,也可以为可视化界面,用户可在移动终端提供的指定界面上,输入指定的解压目录,比如:用户在移动终端提供的界面上输入“E:/”,则指定了移动终端的E盘为指定解压目录;此外,用户还可在移动终端提供的指定界面上输入指定类型的解压文件,由于文件类型的体现为文件格式,因此,用户输入指定的文件格式,即指定了文件类型;比如:用户在移动终端提供的指定界面上输入“.ico”,即指定了后缀(扩展名)为“.ico”的文件,该文件类型为图标文件。当用户完成了上述对解压目录和解压文件类型的指定后,所述接收模块50接收用户的上述指定。可以理解的是,如前述,用户还可指定某一文件,所述接收模块50还用于接收用户对单个文件的指定,该情况可类似分析,在此不赘述。
本发明实施例可一次性、自动地解压用户指定目录下的所有压缩包中指定类型的文件,且可灵活创建相应的目标文件夹,减少了错误率,提高了解压效率,节省了人力资源,提升了用户体验。
为了更清楚的说明本发明,下面将对本发明的文件解压装置中的各模块进行详细介绍。
请参见图3,为本发明的文件解压装置中的读取模块的实施例的结构示意图;所述读取模块10包括:
提取单元101,用于通过递归算法提取指定目录下的所有压缩包。
具体实现中,所述提取单元101通过递归算法,扫描系统中指定目录下的所有文件,过滤其他非压缩文件,从中提取所述指定目录下的所有APK压缩包。
预读取单元102,用于将所述提取单元101提取的压缩包预读取至内存中。
具体实现中,所述预读取单元102预读取过程为:调用第三方工具读取所有APK压缩包;根据第三方工具的实体类存储方式,内存分配存储空间;将第三方工具读取的所有APK压缩包以实体类方式存储于内存分配的空间中。需要说明的是,所述第三方工具可以为Apache工具包,其实体类为枚举类型,所述预读取单元102通过调用Apache工具包的API接口,使用Apache工具包进行APK压缩包的读取,并以枚举类型将APK压缩包存储于内存中。这种读取方式相对于现有技术中直接使用Android系统中的Java程序的读取方式,其读取的速度更快,效率更高。当然,所述预读取单元102也可以采用现有技术中的Java程序进行预读取,其读取过程与现有技术相同,在此不赘述。
本发明实施例可快速实现数据的读取,提高了解压效率,节省了人力资源,提升了用户体验。
请参见图4,为本发明的文件解压装置中的查找模块的实施例的结构示意图;所述查找模块20包括:
分组单元201,用于按文件类型,将内存中每个压缩包的文件划分成至少一个数组,每个数组对应一种文件类型。
具体实现中,所述分组单元201根据文件类型,将内存中每个APK压缩包的文件划分成至少一个数组,每个数组对应一种文件类型,比如:若APK压缩包1包含的文件类型为图标文件类型、文本文件类型、图形文件类型,所述分组单元201将该APK压缩包1分为三个数组,分别为数组a、数组b、数组c,所述数组a对应图标文件类型,数组b对应文本文件类型,数组c对应图形文件类型。可以理解的是,此处仅为举例,根据每个APK压缩包所包含的文件类型不同,其划分的数组也相应有差异,其他情况可类似分析,在此不赘述。
快速排序单元202,用于对所述分组单元201划分成的各个数组进行快速排序。
具体实现中,所述快速排序单元202主要是采用快速排序算法,将所述分组单元201划分成的各个数组进行快速排序。可以理解的是,所述快速排序单元202采用快速排序算法对各个数组进行快速排序的过程与现有的快速排序算法的排序过程类似,在此不赘述。
查找单元203,用于根据所述快速排序单元202的快速排序结果,依次从每个压缩包中查找与所述指定类型对应的数组。
具体实现中,所述查找单元203可通过查找算法(如:顺序查找算法、递归二叉查找算法等),根据所述快速排序单元202的快速排序结果,遍历每个压缩包内的各个数组,查找并过滤出与指定类型对应的数组。比如:依上述例子,若用户指定了后缀为“.ico”的图标文件,则所述查找单元203遍历内存中每个APK压缩包内的各个数组,从每个APK压缩包中查找到与图标文件类型对应的数组a。可以理解的是,此处仅为举例,当用户指定了其他类型文件或其他单个的文件时,可类似分析,在此不赘述。
获取单元204,用于获取所述查找单元203查找到的数组中的所有文件的文件信息。
具体实现中,所述文件信息包括以下信息中的任一种或多种:文件名称、存储路径、文件内容;所述获取单元204,在所述查找单元203查找到与指定类型对应的数组后,获取数组中所有文件的文件信息,比如:依上述例子,所述查找单元203查找到与指定的图标文件类型对应的数组a,则所述获取单元204依次从每个APK压缩包内的数组a中获取所有文件的文件信息,如从APK压缩包1的数组a中获取图标文件一的文件信息,从APK压缩包2的数组a中获取图标文件二的文件信息,从APK压缩包3的数组a获取图标文件三的文件信息。
具体地,在所述获取单元204获取到文件信息后,所述创建模块30,还用于根据所述获取单元204获取的文件的存储路径,创建相应的目标文件夹。具体实现中,依上述例子,所述获取单元204获取图标文件一的存储路径为:“E:/APK压缩包1”,所述创建模块30在E盘下创建一个以APK压缩包1的名称命名的目标文件夹1(该目标文件夹1的名称与APK压缩包1的名称相同)。同理,所述创建模块30根据图标文件二、图标文件三的存储路径,创建相应的目标文件夹2和目标文件夹3。
本发明实施例可实现指定文件的快速查找,且可灵活、自动地创建的指定文件的解压路径和目标文件夹,提高了解压效率,节省了人力资源,提升了用户体验。
请参见图5,为本发明的文件解压装置中的解压模块的实施例的结构示意图;所述解压模块40包括:
文件创建单元401,用于根据所述获取单元204获取的文件的文件名称,在所述创建模块30创建的目标文件夹中创建以所述文件名称命名的目标文件。
具体实现中,如前述,所述获取单元204获取文件的文件信息包括:文件名称、存储路径、文件内容;所述文件创建单元401根据所述获取单元204获取的文件的文件名称,在所述创建模块30创建的目标文件夹中创建以所述文件名称命名的目标文件。具体实现中,依上述例子,所述获取单元204获取图标文件一的文件名称为:“一”,所述文件创建单元401在“E:/目标文件夹1”下创建一个以“一”的命名的图标文件一(该图标文件一的名称与APK压缩包1的数组a中的图标文件一名称相同)。同理,所述文件创建单元401根据图标文件二、图标文件三的文件名称,创建相应的图标文件二和图标文件三。
解压单元402,用于解压所述获取单元204获取的文件的文件内容。
具体实现中,如前述,由于APK压缩包被预读取并存储于内存中,因此,内存中的APK压缩包内的各文件处于压缩状态,因此,所述解压单元402需要解压所述获取单元204获取的文件的文件内容,将该文件内容还原为压缩前的状态。可以理解的是,所述解压单元402的具体解压过程与现有技术类似,在此不赘述。
写单元403,用于将所述解压单元402解压后的文件内容写入所述文件创建单元401创建的目标文件中。
具体实现中,根据内存的读写规则,在所述解压单元402解压文件内容后,所述写单元403将所述解压后的文件内容写入所述文件创建单元401创建的目标文件中。需要说明的是,所述写单元403写入文件内容后,所述目标文件与内存中的相应文件压缩前的文件名称、文件格式和文件内容完全相同。
本发明实施例可快速将指定类型的文件解压至相应目标文件夹中,方便用户对解压后的指定类型的文件的查找和使用,提高了自动化程度,提升了用户体验。
为了更清楚的说明本发明,下面将对本发明的文件解压装置所执行的文件解压方法进行详细介绍。
请参见图6,为本发明的文件解压方法的第一实施例的流程图;所述方法包括:
S101,读取指定目录下的所有压缩包。
具体实现中,所述S101根据用户对解压目录的指定,将所述指定目录下的所有APK压缩包读取出来;比如:用户指定了移动终端的E盘为指定的解压目录;设定E盘下共有三个APK压缩包,分别为APK压缩包1、APK压缩包2和APK压缩包3,则所述S101将所述三个APK压缩包一并读取出来。
具体地,所述S101的读取过程为Android手机端的内存预读取过程,具体过程为:扫描系统中指定目录下的所有文件,过滤其他非压缩文件,从中提取所述指定目录下的所有APK压缩包;调用第三方工具读取所有APK压缩包;根据第三方工具的实体类存储方式,内存分配存储空间;将第三方工具读取的所有APK压缩包以实体类方式存储于内存分配的空间中。需要说明的是,所述第三方工具可以为Apache(一种服务器软件)工具包,其实体类为枚举类型,所述S101通过调用Apache工具包的API(Application Programming Interface,应用程序编程接口)接口,使用Apache工具包进行APK压缩包的读取,并以枚举类型存储于内存中。这种读取方式相对于现有技术中直接使用Android系统中的Java程序的读取方式,其读取的速度更快,效率更高。当然,所述S101也可以采用现有技术中的Java程序进行预读取,其读取过程与现有技术相同,在此不赘述。
S102,在所述读取的压缩包中查找指定类型的文件。
具体实现中,所述S102遍历内存中的枚举类型,查找并过滤出指定类型的文件,并获取查找到的文件的文件信息,其中,所述文件信息包括以下信息中的任一种或多种:文件名称、存储路径、文件内容。比如:依上述例子,设定APK压缩包1中包含图标文件一,APK压缩包2中包含图标文件二,APK压缩包3中包含图标文件三。若用户指定了后缀为“.ico”的图标文件,则所述S102遍历内存中的枚举类型,从各个APK压缩包中查找出图标文件,并获取各图标文件的文件信息。可以理解的是,此处图标文件仅为举例,当用户指定了其他类型文件或其他单个的文件时,可类似分析,在此不赘述。
S103,根据所述查找到的指定类型的文件的文件信息,创建相应的目标文件夹。
具体实现中,在所述S102查找到指定类型的文件并获取相应的文件信息后,所述S103则根据所述指定类型的文件的存储路径,创建相应的目标文件夹。依上述例子,比如:所述S102获取到图标文件一的存储路径为:“E:/APK压缩包1”,所述S103根据图标文件一的存储路径,在E盘下创建一个以APK压缩包1的名称命名的目标文件夹1(该目标文件夹1的名称与APK压缩包1的名称相同)。同理,所述S103根据图标文件二、图标文件三的存储路径,创建相应的目标文件夹2和目标文件夹3。此处,所述S103根据指定类型的文件的存储路径,创建相应的目标文件夹,可使解压的指定类型的文件被有序的存放,方便用户的查找和使用。
S104,将所述查找到的指定类型的文件解压至所述相应的目标文件夹中。
具体实现中,所述S104将所述S102查找到的指定类型的文件解压至所述S103创建的相应的目标文件夹中。依上述例子,所述S104将所述S102查找到的图标文件一解压至所述S103创建的目标文件夹1中,将所述S102查找到的图标文件二解压至所述S103创建的目标文件夹2中,将所述S102查找到的图标文件三解压至所述S103创建的目标文件夹3中。
本发明实施例可一次性、自动地解压用户指定目录下的所有压缩包中指定类型的文件,且可灵活创建相应的目标文件夹,减少了错误率,提高了解压效率,节省了人力资源,提升了用户体验。
请参见图7,为本发明的文件解压方法的第二实施例的流程图;所述方法包括:
S201,预先接收用户对解压目录的指定和解压文件类型的指定。
具体实现中,移动终端向用户提供指定界面,该指定界面可以为简单的系统操作窗口,也可以为可视化界面,用户可在移动终端提供的指定界面上,输入指定的解压目录,比如:用户在移动终端提供的界面上输入“E:/”,则指定了移动终端的E盘为指定解压目录;此外,用户还可在移动终端提供的指定界面上输入指定类型的解压文件,由于文件类型的体现为文件格式,因此,用户输入指定的文件格式,即指定了文件类型;比如:用户在移动终端提供的指定界面上输入“.ico”,即指定了后缀(扩展名)为“.ico”的文件,该文件类型为图标文件。当用户完成了上述对解压目录和解压文件类型的指定后,所述S201接收用户的上述指定。可以理解的是,如前述,用户还可指定某一文件,所述S201还用于接收用户对单个文件的指定,该情况可类似分析,在此不赘述。
S202,通过递归算法提取指定目录下的所有压缩包。
具体实现中,所述S202通过递归算法,扫描系统中指定目录下的所有文件,过滤其他非压缩文件,从中提取所述指定目录下的所有APK压缩包。
S203,将所述提取的压缩包预读取至内存中。
具体实现中,所述S203预读取过程为:调用第三方工具读取所有APK压缩包;根据第三方工具的实体类存储方式,内存分配存储空间;将第三方工具读取的所有APK压缩包以实体类方式存储于内存分配的空间中。需要说明的是,所述第三方工具可以为Apache工具包,其实体类为枚举类型,所述S203通过调用Apache工具包的API接口,使用Apache工具包进行APK压缩包的读取,并以枚举类型将APK压缩包存储于内存中。这种读取方式相对于现有技术中直接使用Android系统中的Java程序的读取方式,其读取的速度更快,效率更高。当然,所述S203也可以采用现有技术中的Java程序进行预读取,其读取过程与现有技术相同,在此不赘述。
本实施例中,所述S202-S203为上一实施例的S101的具体细化步骤。
S204,按文件类型,将内存中每个压缩包的文件划分成至少一个数组,每个数组对应一种文件类型。
具体实现中,所述S204根据文件类型,将内存中每个APK压缩包的文件划分成至少一个数组,每个数组对应一种文件类型,比如:若APK压缩包1包含的文件类型为图标文件类型、文本文件类型、图形文件类型,所述S204将该APK压缩包1分为三个数组,分别为数组a、数组b、数组c,所述数组a对应图标文件类型,数组b对应文本文件类型,数组c对应图形文件类型。可以理解的是,此处仅为举例,根据每个APK压缩包所包含的文件类型不同,其划分的数组也相应有差异,其他情况可类似分析,在此不赘述。
S205,对所述各个数组进行快速排序。
具体实现中,所述S205主要是采用快速排序算法,将所述S204划分成的各个数组进行快速排序。可以理解的是,所述S205采用快速排序算法对各个数组进行快速排序的过程与现有的快速排序算法的排序过程类似,在此不赘述。
S206,根据所述快速排序的结果,依次从每个压缩包中查找与指定类型对应的数组。
具体实现中,所述S206可通过查找算法(如:顺序查找算法、递归二叉查找算法等),根据所述S205的快速排序结果,遍历每个压缩包内的各个数组,查找并过滤出与指定类型对应的数组。比如:依上述例子,若用户指定了后缀为“.ico”的图标文件,则所述S206遍历内存中每个APK压缩包内的各个数组,从每个APK压缩包中查找到与图标文件类型对应的数组a。可以理解的是,此处仅为举例,当用户指定了其他类型文件或其他单个的文件时,可类似分析,在此不赘述。
S207,获取所述查找到的数组中的所有文件的文件信息。
具体实现中,所述文件信息包括以下信息中的任一种或多种:文件名称、存储路径、文件内容;所述S207在所述S206查找到与指定类型对应的数组后,获取数组中所有文件的文件信息,比如:依上述例子,所述S206查找到与指定的图标文件类型对应的数组a,则所述S207依次从每个APK压缩包内的数组a中获取所有文件的文件信息,如从APK压缩包1的数组a中获取图标文件一的文件信息,从APK压缩包2的数组a中获取图标文件二的文件信息,从APK压缩包3的数组a获取图标文件三的文件信息。
本实施例中,所述S204-S207为上一实施例的S102的具体细化步骤。
S208,根据所述获取的文件的存储路径,创建相应的目标文件夹。
具体实现中,在所述S207获取到文件信息后,所述S208根据所述S207获取的文件的存储路径,创建相应的目标文件夹。具体实现中,依上述例子,所述S207获取图标文件一的存储路径为:“E:/APK压缩包1”,所述S208在E盘下创建一个以APK压缩包1的名称命名的目标文件夹1(该目标文件夹1的名称与APK压缩包1的名称相同)。同理,所述S208根据图标文件二、图标文件三的存储路径,创建相应的目标文件夹2和目标文件夹3。
本实施例中的S208与上一实施例的S103步骤相同。
S209,根据所述获取的文件的文件名称,在所述目标文件夹中创建以所述文件名称命名的目标文件。
具体实现中,如前述,所述S207获取文件的文件信息包括:文件名称、存储路径、文件内容;所述S209根据所述S207获取的文件的文件名称,在所述S208创建的目标文件夹中创建以所述文件名称命名的目标文件。具体实现中,依上述例子,所述S207获取图标文件一的文件名称为:“一”,所述S209在“E:/目标文件夹1”下创建一个以“一”的命名的图标文件一(该图标文件一的名称与APK压缩包1的数组a中的图标文件一名称相同)。同理,所述S209根据图标文件二、图标文件三的文件名称,创建相应的图标文件二和图标文件三。
S210,解压所述获取的文件的文件内容。
具体实现中,如前述,由于APK压缩包被预读取并存储于内存中,因此,内存中的APK压缩包内的各文件处于压缩状态,因此,所述S210需要解压所述S207获取的文件的文件内容,将该文件内容还原为压缩前的状态。可以理解的是,所述S210的具体解压过程与现有技术类似,在此不赘述。
S211,将所述解压后的文件内容写入所述目标文件中。
具体实现中,根据内存的读写规则,在所述S210解压文件内容后,所述S211将所述解压后的文件内容写入所述S210创建的目标文件中。需要说明的是,所述S211写入文件内容后,所述目标文件与内存中的相应文件压缩前的文件名称、文件格式和文件内容完全相同。
本实施例中,S209-S211为上一实施例的S104的具体细化步骤。
本发明实施例可一次性、自动地解压用户指定目录下的所有压缩包中指定类型的文件,且可灵活创建相应的目标文件夹,减少了错误率,提高了解压效率,节省了人力资源,提升了用户体验。
需要说明的是,本发明上述实施例中,Android系统下的移动终端的APK压缩包中的文件解压过程仅为举例,其他情况,比如:其他系统(如:Windows系统等)下的移动终端的其他格式的压缩包(如:Rar压缩包、Zip压缩包等)的文件解压过程可类似分析,在此不赘述。
通过上述实施例的描述,本发明实施例通过读取指定目录下的所有压缩包,并将读取的压缩包中指定类型的文件解压至自动创建的相应目标文件夹中,实现了一次性、自动地对多个文件的解压,避免了手动操作所耗费的资源和出现的错误,提高了文件解压效率,提升了用户体验;本发明实施例中,用户只需要指定需要解压的目录和解压文件的类型,本发明实施例的方案即可快速将指定类型的文件解压至相应目标文件夹中,方便用户对解压后的指定类型的文件的查找和使用,提高了自动化程度,提升了用户体验。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。
Claims (4)
1.一种文件解压方法,其特征在于,包括:
读取指定目录下的所有压缩包;
在所述读取的压缩包中查找指定类型的文件;
根据所述查找到的指定类型的文件的文件信息,创建相应的目标文件夹;
将所述查找到的指定类型的文件解压至所述相应的目标文件夹中;
所述读取指定目录下的所有压缩包,包括:
通过递归算法提取指定目录下的所有压缩包;
调用第三方工具将所述提取的压缩包预读取至内存中;所述在所述读取的压缩包中查找指定类型的文件,包括:
按文件类型,将内存中每个压缩包的文件划分成至少一个数组,每个数组对应一种文件类型;
对所述各个数组进行快速排序;
根据所述快速排序的结果,依次从每个压缩包中查找与所述指定类型对应的数组;
获取所述查找到的数组中的所有文件的文件信息;
其中,所述文件信息包括以下信息中的任一种或多种:文件名称、存储路径、文件内容;
所述根据所述查找到的指定类型的文件的文件信息,创建相应的目标文件夹,包括:根据所述获取的文件的存储路径,创建相应的目标文件夹;
所述将所述查找到的指定类型的文件解压至所述相应的目标文件夹中,包括:
根据所述获取的文件的文件名称,在所述目标文件夹中创建以所述文件名称命名的目标文件;
解压所述获取的文件的文件内容;
将所述解压后的文件内容写入所述目标文件中。
2.如权利要求1所述的方法,其特征在于,所述读取指定目录下的所有压缩包之前,还包括:
预先接收用户对解压目录的指定和解压文件类型的指定。
3.一种文件解压装置,其特征在于,包括:
读取模块,用于读取指定目录下的所有压缩包;
查找模块,用于在所述读取模块读取的压缩包中查找指定类型的文件;
创建模块,用于根据所述查找模块查找到的指定类型的文件的文件信息,创建相应的目标文件夹;
解压模块,用于将所述查找模块查找到的指定类型的文件解压至所述创建模块创建的相应的目标文件夹中;
所述读取模块包括:
提取单元,用于通过递归算法提取指定目录下的所有压缩包;
预读取单元,用于调用第三方工具将所述提取的压缩包预读取至内存中;所述查找模块包括:
分组单元,用于按文件类型,将内存中每个压缩包的文件划分成至少一个数组,每个数组对应一种文件类型;
快速排序单元,用于对所述分组单元划分成的各个数组进行快速排序;
查找单元,用于根据所述快速排序单元的快速排序结果,依次从每个压缩包中查找与所述指定类型对应的数组;
获取单元,用于获取所述查找单元查找到的数组中的所有文件的文件信息,所述文件信息包括以下信息中的任一种或多种:文件名称、存储路径、文件内容;
所述创建模块,用于根据所述获取单元获取的文件的存储路径,创建相应的目标文件夹;
所述解压模块包括:
文件创建单元,用于根据所述获取单元获取的文件的文件名称,在所述创建模块创建的目标文件夹中创建以所述文件名称命名的目标文件;
解压单元,用于解压所述获取单元获取的文件的文件内容;
写单元,用于将所述解压单元解压后的文件内容写入所述文件创建单元创建的目标文件中。
4.如权利要求3所述的装置,其特征在于,还包括:
接收模块,用于预先接收用户对解压目录的指定和解压文件类型的指定。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010615127.6A CN102054038B (zh) | 2010-12-30 | 2010-12-30 | 一种文件解压方法、装置及移动终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010615127.6A CN102054038B (zh) | 2010-12-30 | 2010-12-30 | 一种文件解压方法、装置及移动终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102054038A CN102054038A (zh) | 2011-05-11 |
CN102054038B true CN102054038B (zh) | 2014-05-28 |
Family
ID=43958360
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010615127.6A Expired - Fee Related CN102054038B (zh) | 2010-12-30 | 2010-12-30 | 一种文件解压方法、装置及移动终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102054038B (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102902687B (zh) * | 2011-07-27 | 2015-09-09 | 华为软件技术有限公司 | 资源文件的访问方法及装置 |
CN102402449A (zh) * | 2011-12-30 | 2012-04-04 | 成都三零瑞通移动通信有限公司 | 一种在计算机上直接解析Android安装文件APK文件信息的方法 |
CN103365846A (zh) * | 2012-03-26 | 2013-10-23 | 百度在线网络技术(北京)有限公司 | 处理网盘中的压缩文件的方法、系统和服务器 |
CN103970779B (zh) * | 2013-01-30 | 2017-02-08 | 广州酷狗计算机科技有限公司 | 一种文件的分类方法、装置和设备 |
CN103678713A (zh) * | 2013-12-31 | 2014-03-26 | 上海爱数软件有限公司 | VMware场景中恢复NTFS高级压缩文件的方法 |
CN105262845B (zh) * | 2015-11-27 | 2019-03-12 | 中国建设银行股份有限公司 | 一种文件传输处理方法及系统 |
CN106844766A (zh) * | 2017-02-23 | 2017-06-13 | 郑州云海信息技术有限公司 | 一种压缩文件解压的方法以及装置 |
CN107515704B (zh) * | 2017-08-04 | 2020-01-07 | 珠海格力电器股份有限公司 | 一种预览压缩文件的方法及装置 |
CN107885812A (zh) * | 2017-11-03 | 2018-04-06 | 深圳市沃特沃德股份有限公司 | 车载系统加载媒体数据文件的方法与车载系统 |
CN108197204B (zh) * | 2017-12-28 | 2021-12-21 | 北京安博通科技股份有限公司 | 文件处理方法及装置 |
CN112329281B (zh) * | 2019-07-31 | 2024-10-29 | 比亚迪股份有限公司 | 文件查错方法、装置、电子设备及存储介质 |
CN110737633B (zh) * | 2019-12-19 | 2020-07-24 | 北京东方通科技股份有限公司 | 一种基于云管平台的资源管理方法及系统 |
CN111414339B (zh) * | 2020-03-13 | 2023-04-25 | 浙江大华技术股份有限公司 | 一种文件的处理方法、系统、装置、设备及介质 |
CN113760191B (zh) * | 2021-08-31 | 2022-09-23 | 荣耀终端有限公司 | 数据读取方法、装置、存储介质和程序产品 |
CN114553968B (zh) * | 2022-02-24 | 2024-01-23 | 北京字跳网络技术有限公司 | 压缩包的处理方法、装置、电子设备和存储介质 |
CN115587076B (zh) * | 2022-12-12 | 2023-05-16 | 北京象帝先计算技术有限公司 | 数据解压系统、图形处理系统、组件、设备及解压方法 |
CN117041244B (zh) * | 2023-08-25 | 2024-07-09 | 广东保伦电子股份有限公司 | 一种批量上传音频文件的实现方法及处理终端 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1405705A (zh) * | 2001-08-20 | 2003-03-26 | 北京九州计算机网络有限公司 | 计算机文件的智能压缩方法 |
CN1584875A (zh) * | 2004-06-01 | 2005-02-23 | 北京九州计算机网络有限公司 | 批量计算机文件的遍历性压缩和解压缩方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101223699A (zh) * | 2005-07-21 | 2008-07-16 | 易斯普维 | 压缩与解压缩结构化文档的方法和装置 |
-
2010
- 2010-12-30 CN CN201010615127.6A patent/CN102054038B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1405705A (zh) * | 2001-08-20 | 2003-03-26 | 北京九州计算机网络有限公司 | 计算机文件的智能压缩方法 |
CN1584875A (zh) * | 2004-06-01 | 2005-02-23 | 北京九州计算机网络有限公司 | 批量计算机文件的遍历性压缩和解压缩方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102054038A (zh) | 2011-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102054038B (zh) | 一种文件解压方法、装置及移动终端 | |
CN104461504B (zh) | 一种终端应用程序的管理方法 | |
CN103823813B (zh) | 电子终端历史操作记录处理方法及装置 | |
CN108647010B (zh) | 一种项目工程初始化的方法、终端设备及存储介质 | |
CN103902589B (zh) | 一种下载文件的管理方法及装置 | |
CN103246529B (zh) | 更新和推送导航栏的方法、设备和系统 | |
US8438362B2 (en) | Automatically reclaiming memory space | |
CN104461505B (zh) | 一种终端 | |
WO2011117465A1 (en) | Method and apparatus for portable index on a removable storage medium | |
CN109542911B (zh) | 一种元数据组织方法、系统、设备及计算机可读存储介质 | |
CN101799816A (zh) | 一种搜索移动终端信息中关键词的方法和移动终端 | |
CN105183768A (zh) | 一种文件管理方法、装置和终端设备 | |
CN110347673A (zh) | 数据文件加载方法、装置、计算机设备以及存储介质 | |
CN112559463A (zh) | 压缩文件处理的方法及装置 | |
CN107766549A (zh) | 文本文件删除方法及装置、终端装置与可读存储介质 | |
CN109408471B (zh) | 一种基于匹配树的压缩包解压方法、装置及存储介质 | |
CN105207830A (zh) | 一种终端信息的检测方法、装置及终端 | |
CN102377688A (zh) | 一种文件的传输方法和设备 | |
CN106201198B (zh) | 终端应用的查找方法、装置及移动终端 | |
CN103533130A (zh) | 一种删除联系人信息的方法及移动终端 | |
CN109189345B (zh) | 一种在线数据整理方法、装置、设备及存储介质 | |
CN107436848B (zh) | 一种实现用户数据和压缩数据间转换的方法及装置 | |
CN111090623A (zh) | 一种数据审计方法、装置、电子设备及存储介质 | |
CN104951253A (zh) | 一种内存容量处理的方法及移动终端 | |
CN104484174A (zh) | Rar格式的压缩文件的处理方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20140528 Termination date: 20211230 |