CN106293542B - 一种文件解压缩的方法及装置 - Google Patents
一种文件解压缩的方法及装置 Download PDFInfo
- Publication number
- CN106293542B CN106293542B CN201610707897.0A CN201610707897A CN106293542B CN 106293542 B CN106293542 B CN 106293542B CN 201610707897 A CN201610707897 A CN 201610707897A CN 106293542 B CN106293542 B CN 106293542B
- Authority
- CN
- China
- Prior art keywords
- file
- compressed
- data volume
- determining
- compressed files
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种文件解压缩的方法,包括:从待解压缩的文件压缩包中读取中心目录记录结束符;从所述中心目录记录结束符中读取所述文件压缩包中被压缩文件的数量;若所述被压缩文件的数量大于第一阈值,则根据所述被压缩文件的数量,确定所述文件压缩包中被压缩文件的数据量均值;根据所述被压缩的文件的数据量均值,确定与所述文件压缩包匹配的解压策略,并采用与所述文件压缩包匹配的解压策略解压缩所述文件压缩包。本发明实施例提供的文件解压缩的方法,可以对解压缩文件进行分类,然后选择合适的解压缩方法解压缩该文件压缩包,从而减少了IO操作的次数,减少了解压缩时间,提高了解压缩效率。
Description
技术领域
本发明涉及解压缩技术领域,具体涉及一种文件解压缩的方法及装置。
背景技术
为了节省存储资源或者节省网络带宽,目前数据压缩技术已经被广泛使用。
数据压缩是指在不丢失有用信息的前提下,缩减数据量以减少存储空间,提高其传输、存储和处理效率,或按照一定的算法对数据进行重新组织,减少数据的冗余和存储的空间的一种技术方法。
与数据压缩相对应的就是数据解压缩。在需要用到相应数据时,需要将该数据解压缩出来,数据解压缩就是将一个通过软件压缩的文档、文件等各种东西恢复到压缩之前的样子。
现有技术中,在数据解压缩时,解压缩方法经常与压缩包不匹配,导致解压缩过程中发生的读写(IO)操作的次数非常多,解压缩时间长,导致解压缩效率低下。
发明内容
为解决现有技术中解压缩过程中IO操作的次数多的问题,本发明实施例提供一种文件解压缩的方法,可以对解压缩文件进行分类,然后选择合适的解压缩方法解压缩该文件压缩包,从而减少了IO操作的次数,减少了解压缩时间,提高了解压缩效率。本发明实施例还提供了相应的装置。
本发明第一方面提供一种文件解压缩的方法,包括:
从待解压缩的文件压缩包中读取中心目录记录结束符;
从所述中心目录记录结束符中读取所述文件压缩包中被压缩文件的数量;
若所述被压缩文件的数量大于第一阈值,则根据所述被压缩文件的数量,确定所述文件压缩包中被压缩文件的数据量均值;
根据所述被压缩的文件的数据量均值,确定与所述文件压缩包匹配的解压策略,并采用与所述文件压缩包匹配的解压策略解压缩所述文件压缩包。
本发明第二方面提供一种文件解压缩的装置,包括:
第一读取单元,用于从待解压缩的文件压缩包中读取中心目录记录结束符;
第二读取单元,用于从所述第一读取单元读取的所述中心目录记录结束符中读取所述文件压缩包中被压缩文件的数量;
第一确定单元,用于若所述被压缩文件的数量大于第一阈值,则根据所述第二读取单元读取的所述被压缩文件的数量,确定所述文件压缩包中被压缩文件的数据量均值;
第二确定单元,用于根据所述第一确定单元确定的被压缩的文件的数据量均值,确定与所述文件压缩包匹配的解压策略;
解压缩单元,用于采用所述第二确定单元确定的与文件压缩包匹配的解压策略解压缩所述文件压缩包。
与现有技术中解压缩过程中IO操作的次数多相比,本发明实施例提供一种文件解压缩的方法,可以对解压缩文件进行分类,然后选择合适的解压缩方法解压缩该文件压缩包,从而减少了IO操作的次数,减少了解压缩时间,提高了解压缩效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例中文件压缩包的结构示意图;
图2是本发明实施例中文件压缩包的代码示意图;
图3是本发明实施例中文件解压缩的方法的一实施例示意图;
图4是本发明实施例中文件解压缩的装置的一实施例示意图;
图5是本发明实施例中文件解压缩的装置的另一实施例示意图。
具体实施方式
本发明实施例提供一种文件解压缩的方法,可以对解压缩文件进行分类,然后选择合适的解压缩方法解压缩该文件压缩包,从而减少了IO操作的次数,减少了解压缩时间,提高了解压缩效率。本发明实施例还提供了相应的装置。以下分别进行详细说明。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例中文件压缩包的结构示意图。
如图1所示,本发明实施例所提供的文件压缩包的结构可以包括各个文件的文件头和文件压缩数据,以及中心目录(Central Directory)和中心目录记录结束符。如图1所示,文件部分可以包括文件1、文件2、文件3…文件n,n为大于3的整数。其中,每个文件都包括文件头。中心目录中包括每个文件的描述信息,例如:每个文件的文件头信息和偏移信息等。中心目录记录结束符有22比特(bit),中心目录记录结束符的结构可以参阅表1进行理解。
表1:中心目录记录结束符的结构表
从表1可以读取出中心目录中所记录的文件压缩包中被压缩文件的数量,以及该中心目录的大小。
因中心目录记录结束符位于文件压缩包中最后的22个比特位,所以,可以通过第一次读取操作从待解压缩的文件压缩包中读取中心目录记录结束符,然后再从表1所示的中心目录记录结束符中读取所述文件压缩包中被压缩文件的数量,被压缩文件的数量就是表1中的中心目录的总记录数量。
若被压缩文件的数量大于第一阈值,则可以确认该文件压缩包中压缩多个文件,针对文件压缩包中有多个文件的解压方案,需要根据文件压缩包中各压缩文件的数据量均值来决定解压缩策略,因此,需要进一步确定文件压缩包中被压缩文件的数据量均值。第一阈值例如可以为50,该第一阈值的具体值在本发明实施例中不做限定,根据需求设置即可。
被压缩文件的数据量均值只的是被压缩文件的文件内容的数据量均值,因各文件名称的长度长短不一,如果将文件名称的数据量引入到均值计算中,会影响被压缩文件的数据量均值的准确性。
如图1所示,文件压缩包的总数据量包括:文件头的数据量、文件名称数据量、文件内容数据量、中心目录的数据量和中心目录记录结束符的数据量。
文件压缩包的总数据量可以很容易通过***的接口函数得到,例如:用A表示被压缩文件的总压缩数据量,每个文件的文件头的数据量是固定的30bit,若用D表示文件头的数据量,则D=30bit,中心目录记录结束符的数据量为22bit,用B表示中心目录记录结束符的数据量,则B=22,中心目录的数据量用C表示,从表1中可以读取出该C的取值,也就是中心目录的大小。被压缩文件的数量用E就是表1中的中心目录的总记录数量,被压缩文件的文件名称总数据量用F表示,中心目录中记录有每个被压缩文件的文件名称的数据量,因此,只要将每个被压缩文件的文件名称的数据量读取出来相加即可得到F的值,所述被压缩文件的文件内容总压缩数据量用M表示。
因A=M+B+C+D*E+F,所以就可以得到M=A-B-C-D*E-F,因为B=22,D=30bit,所以就可以得到M=A-22-C-30*E-F。
因为A、C、E和F都是可以通过读取得到,或者通过读取相应数据后计算得到,因此可以求出M,被压缩文件的数据量均值=被压缩文件的文件内容总压缩数据量/被压缩文件的数量,即M/E。
若被压缩文件的数量较多,每个被压缩文件的文件名称的数据量都读取后再相加,无疑会增加操作时间,因此,可以设置第二阈值,例如第二阈值可以为60,当被压缩文件的数量少于60时,可以把每个被压缩文件的文件名称的数据量都读取出来再相加,以得到所有被压缩文件的文件名称总数据量。若被压缩文件的数量大于60时,可以只读取预置数量的文件名称的数据量,然后计算文件名称的数据量平均值,根据所述数据量平均值和所述被压缩文件的数量,确定所有被压缩文件的文件名称总数据量。预置数量可以与第二阈值相同,也可以与第二阈值不同。
图1是本发明实施例中文件压缩包的结构示意图,实际上,文件压缩包中的数据是二进制代码,因此,本发明实施例中给出了例如图2所示代码形式的文件压缩包的示意图。
如图2所示,最后22bit为中心目录记录结束符,其中标号101所指示的位置为中心目录的总记录数量,也就是被压缩文件的数量,标号102所指示的位置为中心目录的大小。标号103所指示的区域为中心目录区域,标号104所指示的区域为压缩文件区域。
关于文件头的长度为30bit可以参阅表2进行理解。
表2:文件头信息结构表
因为,从文件名称开始,就不作为固定的文件头了,所以,本发明实施例中,固定的文件头长度为30bit。
因为中心目录中的结构上有文件名称长度的字段,也就是每个文件名称的数据量,所以可以直接从中心目录上读取文件名称长度,包含文件名称长度的中心目录结构表可以参阅表3进行理解。
表3:中心目录结构表
从表3中可以读出各被压缩文件的文件名称长度,也就是文件名称的数据量。
按照以上方案确定被压缩的文件的数据量均值后,可以将数据量均值与第三阈值进行比较,第三阈值例如可以为1K,第三阈值的取值根据需求设置即可。
若所述被压缩的文件的数据量均值小于第三阈值,则确定与所述文件压缩包匹配的解压策略为ZipFileStream,并采用ZipFileStream解压缩所述文件压缩包;
若所述被压缩的文件的数据量均值大于第三阈值,则确定与所述文件压缩包匹配的解压策略为ZipFile,并采用ZipFile解压缩所述文件压缩包。
本发明实施例中,在解压缩前先对文件压缩包进行归类,根据文件压缩包中的被压缩文件的数量和被压缩的文件的数据量均值再为该文件压缩包选择合适的解压策略,可以有效的减少解压缩过程中IO操作的次数,减少解压缩的时间,从而提高解压缩的效率。
例如:针对本发明实施例的一个仿真数据统计,针对同一个文件压缩包,其中包括了大量的小文件,而且每个小文件的数据量均值都小于第三阈值,如果选择ZipFile解压缩,则需要发生507次IO操作,需要花费1982ms才能完成解压缩,而如果选中ZipFileStream解压缩,则只需发生7次IO操作,714ms就可以完成解压缩。从仿真数据的对比中可以看出,为一个文件压缩包选择合适的解压缩策略进行解压缩,大大的减少了解压缩过程中IO操作的次数,减少解压缩的时间,从而提高解压缩的效率。
参阅图3,本发明实施例提供的文件解压缩的方法的一实施例包括:
201、从待解压缩的文件压缩包中读取中心目录记录结束符。
202、从所述中心目录记录结束符中读取所述文件压缩包中被压缩文件的数量。
203、若所述被压缩文件的数量大于第一阈值,则根据所述被压缩文件的数量,确定所述文件压缩包中被压缩文件的数据量均值。
204、根据所述被压缩的文件的数据量均值,确定与所述文件压缩包匹配的解压策略,并采用与所述文件压缩包匹配的解压策略解压缩所述文件压缩包。
与现有技术中解压缩过程中IO操作的次数多相比,本发明实施例提供一种文件解压缩的方法,可以对解压缩文件进行分类,然后选择合适的解压缩方法解压缩该文件压缩包,从而减少了IO操作的次数,减少了解压缩时间,提高了解压缩效率。
可选地,所述根据所述被压缩文件的数量,确定所述文件压缩包中被压缩文件的数据量均值,可以包括:
确定所述被压缩文件的文件内容总压缩数据量;
根据所述文件内容总压缩数据量和所述被压缩文件的数量,确定所述文件压缩包中被压缩文件的数据量均值。
可选地,所述确定所述被压缩文件的文件内容总压缩数据量,可以包括:
确定所述被压缩文件的总压缩数据量A、所述中心目录记录结束符的数据量B、中心目录的数据量C、文件头的数据量D、被压缩文件的数量E,以及确定所有被压缩文件的文件名称总数据量F;
根据如下公式确定所述被压缩文件的文件内容总压缩数据量M:
M=A-B-C-D*E-F。
可选地,所述确定所有被压缩文件的文件名称总数据量,包括:
若所述被压缩文件的数量大于第二阈值,则获取预置数量的文件名称的数据量,以计算文件名称的数据量平均值,根据所述数据量平均值和所述被压缩文件的数量,确定所有被压缩文件的文件名称总数据量,所述第二阈值大于所述第一阈值;
若所述被压缩文件的数量小于第二阈值,则将每个被压缩文件的文件名称的数据量相加,以得到所有被压缩文件的文件名称总数据量。
可选地,所述根据所述被压缩的文件的数据量均值,确定与所述文件压缩包匹配的解压策略,并采用与所述文件压缩包匹配的解压策略解压缩所述文件压缩包,可以包括:
若所述被压缩的文件的数据量均值小于第三阈值,则确定与所述文件压缩包匹配的解压策略为ZipFileStream,并采用ZipFileStream解压缩所述文件压缩包;
若所述被压缩的文件的数据量均值大于第三阈值,则确定与所述文件压缩包匹配的解压策略为ZipFile,并采用ZipFile解压缩所述文件压缩包。
以上图3所对应文件解压缩的方法的实施例以及任一可选实施例可以参阅图1和图2以及表至表3所对应的描述进行理解,本处不再重复赘述。
以上是对文件解压缩的方法的描述,下面结合附图描述本发明实施例中的文件解压缩的装置。
如图4所示,本发明实施例所提供的文件解压缩的装置30的一实施例包括:
第一读取单元301,用于从待解压缩的文件压缩包中读取中心目录记录结束符;
第二读取单元302,用于从所述第一读取单元301读取的所述中心目录记录结束符中读取所述文件压缩包中被压缩文件的数量;
第一确定单元303,用于若所述被压缩文件的数量大于第一阈值,则根据所述第二读取单元302读取的所述被压缩文件的数量,确定所述文件压缩包中被压缩文件的数据量均值;
第二确定单元304,用于根据所述第一确定单元303确定的被压缩的文件的数据量均值,确定与所述文件压缩包匹配的解压策略;
解压缩单元305,用于采用所述第二确定单元302确定的与文件压缩包匹配的解压策略解压缩所述文件压缩包。
本发明实施例中,第一读取单元301从待解压缩的文件压缩包中读取中心目录记录结束符;第二读取单元302从所述第一读取单元301读取的所述中心目录记录结束符中读取所述文件压缩包中被压缩文件的数量;第一确定单元303若所述被压缩文件的数量大于第一阈值,则根据所述第二读取单元302读取的所述被压缩文件的数量,确定所述文件压缩包中被压缩文件的数据量均值;第二确定单元304根据所述第一确定单元303确定的被压缩的文件的数据量均值,确定与所述文件压缩包匹配的解压策略;解压缩单元305采用所述第二确定单元302确定的与文件压缩包匹配的解压策略解压缩所述文件压缩包。与现有技术中解压缩过程中IO操作的次数多相比,本发明实施例提供一种文件解压缩的装置,可以对解压缩文件进行分类,然后选择合适的解压缩方法解压缩该文件压缩包,从而减少了IO操作的次数,减少了解压缩时间,提高了解压缩效率。
可选地,所述第一确定单元303用于:
确定所述被压缩文件的文件内容总压缩数据量;
根据所述文件内容总压缩数据量和所述被压缩文件的数量,确定所述文件压缩包中被压缩文件的数据量均值。
可选地,所述第一确定单元303用于:
确定所述被压缩文件的总压缩数据量A、所述中心目录记录结束符的数据量B、中心目录的数据量C、文件头的数据量D、被压缩文件的数量E,以及确定所有被压缩文件的文件名称总数据量F;
根据如下公式确定所述被压缩文件的文件内容总压缩数据量M:
M=A-B-C-D*E-F。
可选地,所述第一确定单元303用于:
若所述被压缩文件的数量大于第二阈值,则获取预置数量的文件名称的数据量,以计算文件名称的数据量平均值,根据所述数据量平均值和所述被压缩文件的数量,确定所有被压缩文件的文件名称总数据量,所述第二阈值大于所述第一阈值;
若所述被压缩文件的数量小于第二阈值,则将每个被压缩文件的文件名称的数据量相加,以得到所有被压缩文件的文件名称总数据量。
可选地,所述第二确定单元304,用于若所述被压缩的文件的数据量均值小于第三阈值,则确定与所述文件压缩包匹配的解压策略为ZipFileStream;
所述解压缩单元305,用于采用ZipFileStream解压缩所述文件压缩包;
所述第二确定单元304,用于若所述被压缩的文件的数据量均值大于第三阈值,则确定与所述文件压缩包匹配的解压策略为ZipFile;
所述解压缩单元305,用于采用ZipFile解压缩所述文件压缩包。
以上图4所对应的文件解压缩的装置实施例以及任一可选实施例可以参阅图1和图2以及表至表3所对应的描述进行理解,本处不再重复赘述。
图5是本发明实施例提供的文件压缩的装置30的结构示意图。所述文件压缩的装置30包括处理器310、存储器350和收发器330,存储器350可以包括只读存储器和随机存取存储器,并向处理器310提供操作指令和数据。存储器350的一部分还可以包括非易失性随机存取存储器(NVRAM)。
在一些实施方式中,存储器350存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:
在本发明实施例中,通过调用存储器350存储的操作指令(该操作指令可存储在操作***中),
从待解压缩的文件压缩包中读取中心目录记录结束符;
从所述中心目录记录结束符中读取所述文件压缩包中被压缩文件的数量;
若所述被压缩文件的数量大于第一阈值,则根据所述被压缩文件的数量,确定所述文件压缩包中被压缩文件的数据量均值;
根据所述被压缩的文件的数据量均值,确定与所述文件压缩包匹配的解压策略,并采用与所述文件压缩包匹配的解压策略解压缩所述文件压缩包。
与现有技术中解压缩过程中IO操作的次数多相比,本发明实施例提供一种文件解压缩的方法,可以对解压缩文件进行分类,然后选择合适的解压缩方法解压缩该文件压缩包,从而减少了IO操作的次数,减少了解压缩时间,提高了解压缩效率。
处理器310控制文件压缩的装置30的操作,处理器310还可以称为CPU(CentralProcessing Unit,中央处理单元)。存储器350可以包括只读存储器和随机存取存储器,并向处理器310提供指令和数据。存储器350的一部分还可以包括非易失性随机存取存储器(NVRAM)。具体的应用中文件压缩的装置30的各个组件通过总线***320耦合在一起,其中总线***320除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线***320。
上述本发明实施例揭示的方法可以应用于处理器310中,或者由处理器310实现。处理器310可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器310中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器310可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器350,处理器310读取存储器350中的信息,结合其硬件完成上述方法的步骤。
可选地,处理器310用于:
确定所述被压缩文件的文件内容总压缩数据量;
根据所述文件内容总压缩数据量和所述被压缩文件的数量,确定所述文件压缩包中被压缩文件的数据量均值。
可选地,处理器310用于:
确定所述被压缩文件的总压缩数据量A、所述中心目录记录结束符的数据量B、中心目录的数据量C、文件头的数据量D、被压缩文件的数量E,以及确定所有被压缩文件的文件名称总数据量F;
根据如下公式确定所述被压缩文件的文件内容总压缩数据量M:
M=A-B-C-D*E-F。
可选地,处理器310用于:
若所述被压缩文件的数量大于第二阈值,则获取预置数量的文件名称的数据量,以计算文件名称的数据量平均值,根据所述数据量平均值和所述被压缩文件的数量,确定所有被压缩文件的文件名称总数据量,所述第二阈值大于所述第一阈值;
若所述被压缩文件的数量小于第二阈值,则将每个被压缩文件的文件名称的数据量相加,以得到所有被压缩文件的文件名称总数据量。
可选地,处理器310用于:
若所述被压缩的文件的数据量均值小于第三阈值,则确定与所述文件压缩包匹配的解压策略为ZipFileStream,并采用ZipFileStream解压缩所述文件压缩包;
若所述被压缩的文件的数据量均值大于第三阈值,则确定与所述文件压缩包匹配的解压策略为ZipFile,并采用ZipFile解压缩所述文件压缩包。
以上的文件压缩的装置30可以参阅图1至图4部分的描述进行理解,本处不做过多赘述
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
以上对本发明实施例所提供的文件解压缩的方法以及装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (9)
1.一种文件解压缩的方法,其特征在于,包括:
从待解压缩的文件压缩包中读取中心目录记录结束符;
从所述中心目录记录结束符中读取所述文件压缩包中被压缩文件的数量;
若所述被压缩文件的数量大于第一阈值,则根据所述被压缩文件的数量,确定所述文件压缩包中被压缩文件的数据量均值,所述被压缩文件的数据量均值是被压缩文件的文件内容的数据量均值;
根据所述被压缩的文件的数据量均值,确定与所述文件压缩包匹配的解压策略,并采用与所述文件压缩包匹配的解压策略解压缩所述文件压缩包;
其中,根据所述被压缩的文件的数据量均值,确定与所述文件压缩包匹配的解压策略,并采用与所述文件压缩包匹配的解压策略解压缩所述文件压缩包,包括:
若所述被压缩的文件的数据量均值小于第三阈值,则确定与所述文件压缩包匹配的解压策略为ZipFileStream,并采用ZipFileStream解压缩所述文件压缩包;
若所述被压缩的文件的数据量均值大于第三阈值,则确定与所述文件压缩包匹配的解压策略为ZipFile,并采用ZipFile解压缩所述文件压缩包。
2.根据权利要求1所述的方法,其特征在于,所述根据所述被压缩文件的数量,确定所述文件压缩包中被压缩文件的数据量均值,包括:
确定所述被压缩文件的文件内容总压缩数据量;
根据所述文件内容总压缩数据量和所述被压缩文件的数量,确定所述文件压缩包中被压缩文件的数据量均值。
3.根据权利要求2所述的方法,其特征在于,所述确定所述被压缩文件的文件内容总压缩数据量,包括:
确定所述被压缩文件的总压缩数据量A、所述中心目录记录结束符的数据量B、中心目录的数据量C、文件头的数据量D、被压缩文件的数量E,以及确定所有被压缩文件的文件名称总数据量F;
根据如下公式确定所述被压缩文件的文件内容总压缩数据量M:
M=A-B-C-D*E-F。
4.根据权利要求3所述的方法,其特征在于,所述确定所有被压缩文件的文件名称总数据量,包括:
若所述被压缩文件的数量大于第二阈值,则获取预置数量的文件名称的数据量,以计算文件名称的数据量平均值,根据所述数据量平均值和所述被压缩文件的数量,确定所有被压缩文件的文件名称总数据量,所述第二阈值大于所述第一阈值;
若所述被压缩文件的数量小于第二阈值,则将每个被压缩文件的文件名称的数据量相加,以得到所有被压缩文件的文件名称总数据量。
5.一种文件解压缩的装置,其特征在于,包括:
第一读取单元,用于从待解压缩的文件压缩包中读取中心目录记录结束符;
第二读取单元,用于从所述第一读取单元读取的所述中心目录记录结束符中读取所述文件压缩包中被压缩文件的数量;
第一确定单元,用于若所述被压缩文件的数量大于第一阈值,则根据所述第二读取单元读取的所述被压缩文件的数量,确定所述文件压缩包中被压缩文件的数据量均值,所述被压缩文件的数据量均值是被压缩文件的文件内容的数据量均值;
第二确定单元,用于根据所述第一确定单元确定的被压缩的文件的数据量均值,确定与所述文件压缩包匹配的解压策略;
解压缩单元,用于采用所述第二确定单元确定的与文件压缩包匹配的解压策略解压缩所述文件压缩包;
其中,第二确定单元,用于若所述被压缩的文件的数据量均值小于第三阈值,则确定与所述文件压缩包匹配的解压策略为ZipFileStream;
解压缩单元,用于采用ZipFileStream解压缩所述文件压缩包;
第二确定单元,用于若所述被压缩的文件的数据量均值大于第三阈值,则确定与所述文件压缩包匹配的解压策略为ZipFile;
解压缩单元,用于采用ZipFile解压缩所述文件压缩包。
6.根据权利要求5所述的装置,其特征在于,
所述第一确定单元用于:
确定所述被压缩文件的文件内容总压缩数据量;
根据所述文件内容总压缩数据量和所述被压缩文件的数量,确定所述文件压缩包中被压缩文件的数据量均值。
7.根据权利要求6所述的装置,其特征在于,
所述第一确定单元用于:
确定所述被压缩文件的总压缩数据量A、所述中心目录记录结束符的数据量B、中心目录的数据量C、文件头的数据量D、被压缩文件的数量E,以及确定所有被压缩文件的文件名称总数据量F;
根据如下公式确定所述被压缩文件的文件内容总压缩数据量M:
M=A-B-C-D*E-F。
8.根据权利要求7所述的装置,其特征在于,
所述第一确定单元用于:
若所述被压缩文件的数量大于第二阈值,则获取预置数量的文件名称的数据量,以计算文件名称的数据量平均值,根据所述数据量平均值和所述被压缩文件的数量,确定所有被压缩文件的文件名称总数据量,所述第二阈值大于所述第一阈值;
若所述被压缩文件的数量小于第二阈值,则将每个被压缩文件的文件名称的数据量相加,以得到所有被压缩文件的文件名称总数据量。
9.一种计算机可读存储介质,其特征在于,包括若干指令用以执行如权利要求1-4任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610707897.0A CN106293542B (zh) | 2016-08-23 | 2016-08-23 | 一种文件解压缩的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610707897.0A CN106293542B (zh) | 2016-08-23 | 2016-08-23 | 一种文件解压缩的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106293542A CN106293542A (zh) | 2017-01-04 |
CN106293542B true CN106293542B (zh) | 2020-06-05 |
Family
ID=57615647
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610707897.0A Active CN106293542B (zh) | 2016-08-23 | 2016-08-23 | 一种文件解压缩的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106293542B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106899308B (zh) * | 2017-01-19 | 2020-05-22 | 中国科学院信息工程研究所 | 一种软硬件结合的自适应实时gzip数据解压缩方法及*** |
CN107918654B (zh) * | 2017-11-16 | 2020-07-24 | 联想(北京)有限公司 | 文件解压缩方法、装置及电子设备 |
CN112529759B (zh) * | 2020-12-22 | 2024-05-14 | 北京百度网讯科技有限公司 | 文档处理方法、装置、设备、存储介质和计算机程序产品 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101355364A (zh) * | 2008-09-08 | 2009-01-28 | 北大方正集团有限公司 | 文件压缩方法及装置、文件解压缩方法及装置 |
CN102867039A (zh) * | 2012-08-31 | 2013-01-09 | 北京奇虎科技有限公司 | 多媒体注释的添加、读取方法及装置 |
CN105302494A (zh) * | 2015-11-19 | 2016-02-03 | 浪潮(北京)电子信息产业有限公司 | 一种压缩策略选择方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102005227B1 (ko) * | 2013-03-12 | 2019-07-30 | 삼성전자 주식회사 | 데이터 처리 시스템과 이의 동작 방법 |
-
2016
- 2016-08-23 CN CN201610707897.0A patent/CN106293542B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101355364A (zh) * | 2008-09-08 | 2009-01-28 | 北大方正集团有限公司 | 文件压缩方法及装置、文件解压缩方法及装置 |
CN102867039A (zh) * | 2012-08-31 | 2013-01-09 | 北京奇虎科技有限公司 | 多媒体注释的添加、读取方法及装置 |
CN105302494A (zh) * | 2015-11-19 | 2016-02-03 | 浪潮(北京)电子信息产业有限公司 | 一种压缩策略选择方法及装置 |
Non-Patent Citations (1)
Title |
---|
压缩文件格式分析与应用;郭儒家;《中国优秀硕士学位论文全文数据库信息科技辑》;20160315;第3.1.1节 * |
Also Published As
Publication number | Publication date |
---|---|
CN106293542A (zh) | 2017-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110799959B (zh) | 一种数据压缩方法与解压方法以及相关设备 | |
US8782018B2 (en) | Storage device and data processing device utilizing determined dictionary compression | |
US7924183B2 (en) | Method and system for reducing required storage during decompression of a compressed file | |
CN107395209B (zh) | 数据压缩方法、数据解压缩方法及其设备 | |
US9336081B2 (en) | Data writing and reading method, and memory controller and memory storage apparatus using the same for improving reliability of data access | |
US9742437B2 (en) | Method for lossless data compression/decompression and device thereof | |
CN111262876B (zh) | 基于区块链的数据处理方法、装置、设备以及存储介质 | |
CN110795272B (zh) | 用于在可变大小的i/o上促进的原子性和延迟保证的方法和*** | |
CN106293542B (zh) | 一种文件解压缩的方法及装置 | |
CN106849956B (zh) | 压缩方法、解压缩方法、装置和数据处理*** | |
CN113055455A (zh) | 文件上传方法及设备 | |
CN114337678A (zh) | 数据压缩方法、装置、设备及存储介质 | |
US20140258247A1 (en) | Electronic apparatus for data access and data access method therefor | |
US8595594B2 (en) | Data processing method, memory controller, and memory storage device | |
CN113079219A (zh) | 一种大文件分片上传方法和*** | |
CN112131202B (zh) | 一种分布式文件存储和读取方法、终端设备及存储介质 | |
CN116302670A (zh) | 编解码方法、编解码器、芯片、硬盘、通讯*** | |
CN114257879B (zh) | 一种播放视频的方法及*** | |
CN112800183B (zh) | 内容名称数据处理方法及终端设备 | |
CN116431585A (zh) | 文件的压缩方法及其装置、文件的解压方法及其装置 | |
CN114356386A (zh) | 一种分块差分升级方法、终端设备和计算机可读存储介质 | |
CN109947371B (zh) | 数据记录方法、装置、存储器及t-box | |
CN113641643A (zh) | 文件写入方法及装置 | |
US20140301655A1 (en) | Image decoding methods and image decoding devices | |
US11461173B1 (en) | Method and system for facilitating efficient data compression based on error correction code and reorganization of data placement |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |