一种文件打包方法及装置的制造方法

文档序号:9687436阅读:341来源:国知局
一种文件打包方法及装置的制造方法
【技术领域】
[0001]本发明涉及移动互联网技术领域,更为具体地,涉及一种文件打包方法及装置。
【背景技术】
[0002]随着手机终端的广泛应用及其应用的快速发展,针对手机终端的各种安装包越来越多。安装包(Install pack),即软件安装包,是可自行解压缩文件的集合,其中包括软件安装的所有文件。运行这个安装包(可执行文件),可以将此软件的所有文件释放到手机终端上,完成修改注册表、修改系统设置、创建快捷方式等工作。
[0003]对手机终端的应用而言,其安装包的体积越小,则在渠道推广中的效果越好:安装包小,用户下载、安装消耗的时间成本小,下载过程中可能出现的出错率小,自然效果会更好。
[0004]对基于Hybrid架构的应用安装包而言,其安装包中会包含一个H5代码(html/css/js文件)压缩包,其中包含了应用运行所需必要的H5元素,业内一般使用zip的打包压缩方式进行处理,其处理方式为:逐一对单个文件进行压缩,再将所有文件打包。此外,如果想获得更高的文件压缩率,业内也会使用tar打包方式,使用这样打包方式的一般为容量较大的游戏,因为如果要使用 tar (http://www.gnu.0rg/software/tar/tar.html)打包方式,需要在安装包中预置tar打包相应的库,这个库也是有一定体积,对于一些安装包较小的应用,使用tar打包压缩方式反而得不偿失。
[0005]因此,需要一种全新的能提高压缩率的打包方法及装置。

【发明内容】

[0006]鉴于上述问题,本发明的目的是提供一种文件打包方法及装置,以解决现有的打包压缩方式压缩率不高的问题。
[0007]本发明提供的技术方案如下:
[0008]本发明提供一种文件打包方法,包括:根据打包压缩参数遍历目标目录;
[0009]在遍历过程中判断出所述目标目录下的文件或所述目标目录的子目录下的文件为普通文件时,获取所述目标目录下的文件的数据和所述目标目录的子目录下的文件的数据;将获取的所述目标目录下的文件的数据和所述目标目录的子目录下的文件的数据写入打包文件并进行压缩。
[0010]其中,所述将获取的所述目标目录下的文件的数据和所述目标目录的子目录下的文件的数据写入打包文件时,舍弃文件的属性信息。
[0011]该方法还包括:在遍历过程中判断出是所述目标目录的子目录时,获取所述目标目录的子目录的数据,将获取的所述目标目录的子目录的数据写入打包文件并进行压缩;其中,所述子目录的数据包括所述子目录的路径内容与所述子目录的路径长度,不包括子目录下的文件。
[0012]其中,所述目标目录下的文件的数据包括文件的内容、文件的内容长度、文件的路径内容与文件的路径长度;所述子目录下的文件的数据包括文件的内容、文件的内容长度、文件的路径内容与文件的路径长度。
[0013]其中,所述遍历过程中是调用系统函数获取文件的属性,将所述文件的属性填充数据结构后,根据所述数据结构的标识位的取值符合预定条件,判断出所述目标目录下的文件或所述目标目录的子目录下的文件为普通文件。
[0014]其中,所述遍历过程中是调用系统函数获取文件的属性,根据属性判断出遍历读取的内容为所述目标目录下的文件或所述目标目录的子目录。
[0015]本发明还提供一种文件打包装置,包括:目标目录遍历单元,用于根据打包压缩参数遍历目标目录;文件类型判断单元,用于在遍历过程中判断所述目标目录下的文件或所述目标目录的子目录下的文件是否为普通文件;文件数据获取单元,用于在所述文件类型单元判断出是普通文件时,获取所述目标目录下的文件的数据和所述目标目录的子目录下的文件的数据;打包压缩单元,用于将所述目标目录下的文件的数据和和所述目标目录的子目录下的文件的数据写入打包文件并进行压缩。
[0016]其中,所述打包压缩单元将获取的所述目标目录下的文件的数据和所述目标目录的子目录下的文件的数据写入打包文件时,舍弃文件的属性信息。
[0017]该装置还包括:子目录数据获取单元,用于在所述目标目录遍历单元遍历过程中判断出是所述目标目录的子目录时,获取所述目标目录的子目录的数据,其中,所述子目录的数据包括所述子目录的路径内容与所述子目录的路径长度,不包括子目录下的文件;所述打包压缩单元,将获取的所述目标目录的子目录的数据写入打包文件并进行压缩。
[0018]其中,所述文件类型判断单元是在所述遍历过程中调用系统函数获取文件的属性,将所述文件的属性填充数据结构后,根据所述数据结构的标识位的取值符合预定条件,判断出所述目标目录下的文件或所述目标目录的子目录下的文件为普通文件。
[0019]可以发现,利用上述根据本发明提供的文件打包方法及装置,通过在遍历过程中先判断所述目标目录下的文件或所述目标目录的子目录下的文件的类型,判断出是普通文件后将普通文件作为必要文件,非普通文件则为非必要文件,舍弃非必要文件,只将必要文件写入打包文件进行打包和压缩,可以提高文件压缩率,解决现有技术存在的问题。
[0020]进一步的,在判断出普通文件作为必要文件后,舍弃必要文件的属性的数据(即非文件内容数据),即不将这些属性写入打包文件,从而进一步提高文件压缩率。
[0021]为了实现上述以及相关目的,本发明的一个或多个方面包括后面将详细说明并在权利要求中特别指出的特征。下面的说明以及附图详细说明了本发明的某些示例性方面。然而,这些方面指示的仅仅是可使用本发明的原理的各种方式中的一些方式。此外,本发明旨在包括所有这些方面以及它们的等同物。
【附图说明】
[0022]通过参考以下结合附图的说明及权利要求书的内容,并且随着对本发明的更全面理解,本发明的其它目的及结果将更加明白及易于理解。在附图中:
[0023]图1为根据本发明实施例的打包方法的流程示意图;
[0024]图2为根据本发明实施例的打包方法的详细流程示意图;
[0025]图3为根据本发明实施例的打包装置的逻辑结构示意图;
[0026]图4为根据本发明实施例的一个【具体实施方式】的打包装置的逻辑结构示意图。
[0027]在所有附图中相同的标号指示相似或相应的特征或功能。
【具体实施方式】
[0028]在下面的描述中,出于说明的目的,为了提供对一个或多个实施例的全面理解,阐述了许多具体细节。然而,很明显,也可以在没有这些具体细节的情况下实现这些实施例。在其它例子中,为了便于描述一个或多个实施例,公知的结构和设备以方框图的形式示出。
[0029]本发明提供一种打包方法及装置,可以解决现有的打包压缩方式压缩率不高的问题。
[0030]为了方便理解本发明,先对本发明的几个概念作出解释:
[0031]打包压缩参数:包括目录名(即对哪个目录进行打包)、压缩级别(0-9,数字越大压缩率越高,为了提高压缩率,本发明默认的压缩级别为9)。
[0032]目标目录:为用户选定的要进行打包压缩的目录。
[0033]打包文件:由gzip压缩程序调用操作系统接口产生的文件,gzip对打包数据进行压缩并写到该文件。本发明制定打包文件的格式,调用gzip提供的压缩接口往该文件写入打包数据。本发明是采用边遍历边打包压缩的方式对文件进行处理。
[0034]普通文件:是文件系统中定义的一种文件类型,就是系统中最常用的文件,如文本文件、—进制文件等等。
[0035]其它文件:主要是指设备文件、链接文件以及FIFO、socket文件。
[0036]设备文件:主要指为周边设备提供简单的接口的文件,如打印机接口文件或Linux文件系统下磁盘分区、Linux文件系统/dev目录下的各种文件,设备文件也可访问一些计算机系统上的特定资源,如硬盘。
[0037]链接文件:例如Windows、OS X系统中的桌面快捷方式。
[0038]FIFO、socket文件:这些文件可以用来实现进程间通信或者网络通信,但是这些文件通常不用于保存内容。
[0039]文件的属性:包括文件访问权限、所有者信息、组信息、最后修改时间等信息。
[0040]以下将结合附图对本发明的具体实施例进行详细描述。
[0041]由于现有打包压缩方法如zip、tar,都会将普通文件,以及普通文件之外的部分其他类型的文件和这些文件的属性一起写入打包文件,而在某些使用场景下(如本发明技术背景中描述的应用场景),部分类型的文件和文件的属性是非必要的。通常这些属性可以通过调用系统函数lstat获得。本发明实施例提供的打包方法通过舍弃非必要的文件留下必要文件,并在将必要文件写入打
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1