CN105446975B - 一种文件打包方法及装置 - Google Patents

一种文件打包方法及装置 Download PDF

Info

Publication number
CN105446975B
CN105446975B CN201410283913.9A CN201410283913A CN105446975B CN 105446975 B CN105446975 B CN 105446975B CN 201410283913 A CN201410283913 A CN 201410283913A CN 105446975 B CN105446975 B CN 105446975B
Authority
CN
China
Prior art keywords
file
target directory
data
subdirectory
under
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
Application number
CN201410283913.9A
Other languages
English (en)
Other versions
CN105446975A (zh
Inventor
梁捷
谢佳敏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba China Co Ltd
Original Assignee
Guangzhou I9Game Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangzhou I9Game Information Technology Co Ltd filed Critical Guangzhou I9Game Information Technology Co Ltd
Priority to CN201410283913.9A priority Critical patent/CN105446975B/zh
Priority to PCT/CN2014/088278 priority patent/WO2015196621A1/zh
Publication of CN105446975A publication Critical patent/CN105446975A/zh
Application granted granted Critical
Publication of CN105446975B publication Critical patent/CN105446975B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明提供一种文件打包方法及装置。其中的方法包括,根据打包压缩参数遍历目标目录;在遍历过程中判断出所述目标目录下的文件或所述目标目录的子目录下的文件为普通文件时,获取所述目标目录下的文件的数据和所述目标目录的子目录下的文件的数据;将获取的所述目标目录下的文件的数据和所述目标目录的子目录下的文件的数据写入打包文件并进行压缩。利用本发明方法,能够舍弃非必要文件,将普通文件作为必要文件写入打包文件进行打包压缩,以提高文件的压缩率,进一步可以舍弃必要文件的属性再写入打包文件,以进一步提高文件的压缩率。

Description

一种文件打包方法及装置
技术领域
本发明涉及移动互联网技术领域,更为具体地,涉及一种文件打包方法及装置。
背景技术
随着手机终端的广泛应用及其应用的快速发展,针对手机终端的各种安装包越来越多。安装包(Install pack),即软件安装包,是可自行解压缩文件的集合,其中包括软件安装的所有文件。运行这个安装包(可执行文件),可以将此软件的所有文件释放到手机终端上,完成修改注册表、修改***设置、创建快捷方式等工作。
对手机终端的应用而言,其安装包的体积越小,则在渠道推广中的效果越好:安装包小,用户下载、安装消耗的时间成本小,下载过程中可能出现的出错率小,自然效果会更好。
对基于Hybrid架构的应用安装包而言,其安装包中会包含一个H5代码(html/css/js文件)压缩包,其中包含了应用运行所需必要的H5元素,业内一般使用zip的打包压缩方式进行处理,其处理方式为:逐一对单个文件进行压缩,再将所有文件打包。此外,如果想获得更高的文件压缩率,业内也会使用tar打包方式,使用这样打包方式的一般为容量较大的游戏,因为如果要使用tar(http://www.gnu.org/software/tar/tar.html)打包方式,需要在安装包中预置tar打包相应的库,这个库也是有一定体积,对于一些安装包较小的应用,使用tar打包压缩方式反而得不偿失。
因此,需要一种全新的能提高压缩率的打包方法及装置。
发明内容
鉴于上述问题,本发明的目的是提供一种文件打包方法及装置,以解决现有的打包压缩方式压缩率不高的问题。
本发明提供的技术方案如下:
本发明提供一种文件打包方法,包括:根据打包压缩参数遍历目标目录;
在遍历过程中判断出所述目标目录下的文件或所述目标目录的子目录下的文件为普通文件时,获取所述目标目录下的文件的数据和所述目标目录的子目录下的文件的数据;将获取的所述目标目录下的文件的数据和所述目标目录的子目录下的文件的数据写入打包文件并进行压缩。
其中,所述将获取的所述目标目录下的文件的数据和所述目标目录的子目录下的文件的数据写入打包文件时,舍弃文件的属性信息。
该方法还包括:在遍历过程中判断出是所述目标目录的子目录时,获取所述目标目录的子目录的数据,将获取的所述目标目录的子目录的数据写入打包文件并进行压缩;其中,所述子目录的数据包括所述子目录的路径内容与所述子目录的路径长度,不包括子目录下的文件。
其中,所述目标目录下的文件的数据包括文件的内容、文件的内容长度、文件的路径内容与文件的路径长度;所述子目录下的文件的数据包括文件的内容、文件的内容长度、文件的路径内容与文件的路径长度。
其中,所述遍历过程中是调用***函数获取文件的属性,将所述文件的属性填充数据结构后,根据所述数据结构的标识位的取值符合预定条件,判断出所述目标目录下的文件或所述目标目录的子目录下的文件为普通文件。
其中,所述遍历过程中是调用***函数获取文件的属性,根据属性判断出遍历读取的内容为所述目标目录下的文件或所述目标目录的子目录。
本发明还提供一种文件打包装置,包括:目标目录遍历单元,用于根据打包压缩参数遍历目标目录;文件类型判断单元,用于在遍历过程中判断所述目标目录下的文件或所述目标目录的子目录下的文件是否为普通文件;文件数据获取单元,用于在所述文件类型单元判断出是普通文件时,获取所述目标目录下的文件的数据和所述目标目录的子目录下的文件的数据;打包压缩单元,用于将所述目标目录下的文件的数据和和所述目标目录的子目录下的文件的数据写入打包文件并进行压缩。
其中,所述打包压缩单元将获取的所述目标目录下的文件的数据和所述目标目录的子目录下的文件的数据写入打包文件时,舍弃文件的属性信息。
该装置还包括:子目录数据获取单元,用于在所述目标目录遍历单元遍历过程中判断出是所述目标目录的子目录时,获取所述目标目录的子目录的数据,其中,所述子目录的数据包括所述子目录的路径内容与所述子目录的路径长度,不包括子目录下的文件;所述打包压缩单元,将获取的所述目标目录的子目录的数据写入打包文件并进行压缩。
其中,所述文件类型判断单元是在所述遍历过程中调用***函数获取文件的属性,将所述文件的属性填充数据结构后,根据所述数据结构的标识位的取值符合预定条件,判断出所述目标目录下的文件或所述目标目录的子目录下的文件为普通文件。
可以发现,利用上述根据本发明提供的文件打包方法及装置,通过在遍历过程中先判断所述目标目录下的文件或所述目标目录的子目录下的文件的类型,判断出是普通文件后将普通文件作为必要文件,非普通文件则为非必要文件,舍弃非必要文件,只将必要文件写入打包文件进行打包和压缩,可以提高文件压缩率,解决现有技术存在的问题。
进一步的,在判断出普通文件作为必要文件后,舍弃必要文件的属性的数据(即非文件内容数据),即不将这些属性写入打包文件,从而进一步提高文件压缩率。
为了实现上述以及相关目的,本发明的一个或多个方面包括后面将详细说明并在权利要求中特别指出的特征。下面的说明以及附图详细说明了本发明的某些示例性方面。然而,这些方面指示的仅仅是可使用本发明的原理的各种方式中的一些方式。此外,本发明旨在包括所有这些方面以及它们的等同物。
附图说明
通过参考以下结合附图的说明及权利要求书的内容,并且随着对本发明的更全面理解,本发明的其它目的及结果将更加明白及易于理解。在附图中:
图1为根据本发明实施例的打包方法的流程示意图;
图2为根据本发明实施例的打包方法的详细流程示意图;
图3为根据本发明实施例的打包装置的逻辑结构示意图;
图4为根据本发明实施例的一个具体实施方式的打包装置的逻辑结构示意图。
在所有附图中相同的标号指示相似或相应的特征或功能。
具体实施方式
在下面的描述中,出于说明的目的,为了提供对一个或多个实施例的全面理解,阐述了许多具体细节。然而,很明显,也可以在没有这些具体细节的情况下实现这些实施例。在其它例子中,为了便于描述一个或多个实施例,公知的结构和设备以方框图的形式示出。
本发明提供一种打包方法及装置,可以解决现有的打包压缩方式压缩率不高的问题。
为了方便理解本发明,先对本发明的几个概念作出解释:
打包压缩参数:包括目录名(即对哪个目录进行打包)、压缩级别(0-9,数字越大压缩率越高,为了提高压缩率,本发明默认的压缩级别为9)。
目标目录:为用户选定的要进行打包压缩的目录。
打包文件:由gzip压缩程序调用操作***接口产生的文件,gzip对打包数据进行压缩并写到该文件。本发明制定打包文件的格式,调用gzip提供的压缩接口往该文件写入打包数据。本发明是采用边遍历边打包压缩的方式对文件进行处理。
普通文件:是文件***中定义的一种文件类型,就是***中最常用的文件,如文本文件、二进制文件等等。
其它文件:主要是指设备文件、链接文件以及FIFO、socket文件。
设备文件:主要指为周边设备提供简单的接口的文件,如打印机接口文件或Linux文件***下磁盘分区、Linux文件***/dev目录下的各种文件,设备文件也可访问一些计算机***上的特定资源,如硬盘。
链接文件:例如Windows、OS X***中的桌面快捷方式。
FIFO、socket文件:这些文件可以用来实现进程间通信或者网络通信,但是这些文件通常不用于保存内容。
文件的属性:包括文件访问权限、所有者信息、组信息、最后修改时间等信息。
以下将结合附图对本发明的具体实施例进行详细描述。
由于现有打包压缩方法如zip、tar,都会将普通文件,以及普通文件之外的部分其他类型的文件和这些文件的属性一起写入打包文件,而在某些使用场景下(如本发明技术背景中描述的应用场景),部分类型的文件和文件的属性是非必要的。通常这些属性可以通过调用***函数lstat获得。本发明实施例提供的打包方法通过舍弃非必要的文件留下必要文件,并在将必要文件写入打包文件进行打包压缩时,不将必要文件的属性写入打包文件,以此可以提高文件的压缩率,实现更好的打包效果。
需要说明的是,必要文件就是指上述的普通文件。
图1示出了根据本发明实施例的能提高压缩率的打包方法的流程。
如图1所示,本发明实施例提供的提高压缩率的打包方法包括步骤:
S101、根据打包压缩参数遍历目标目录;
S102、在遍历过程中判断出所述目标目录下的文件或所述目标目录的子目录下的文件为普通文件时,获取所述目标目录下的文件的数据和所述目标目录的子目录下的文件的数据;
S103、将获取的所述目标目录下的文件的数据和所述目标目录的子目录下的文件的数据写入打包文件并进行压缩。
其中,所述将获取的所述目标目录下的文件的数据和所述目标目录的子目录下的文件的数据写入打包文件时,舍弃文件的属性信息。
其中,所述遍历过程中是调用***函数获取文件的属性,将所述文件的属性填充数据结构后,根据所述数据结构的标识位的取值符合预定条件,判断出所述目标目录下的文件或所述目标目录的子目录下的文件为普通文件。
该方法还包括:在遍历过程中判断出是所述目标目录的子目录时,获取所述目标目录的子目录的数据,将获取的所述目标目录的子目录的数据写入打包文件并进行压缩;其中,所述子目录的数据包括所述子目录的路径内容与所述子目录的路径长度,不包括子目录下的文件。
可以发现,利用上述根据本发明提供的文件打包方法及装置,通过在遍历过程中先判断所述目标目录下的文件或所述目标目录的子目录下的文件的类型,判断出是普通文件后将普通文件作为必要文件,非普通文件则为非必要文件,舍弃非必要文件,只将必要文件写入打包文件进行打包和压缩,可以提高文件压缩率,解决现有技术存在的问题。进一步的,在判断出普通文件作为必要文件后,舍弃必要文件的属性的数据(即非文件内容数据),即不将这些属性写入打包文件,从而进一步提高文件压缩率。
为了更详细地说明本发明实施例提供的提高压缩率的打包方法,图2示出了根据本发明实施例的提高压缩率的打包方法的详细流程。
如图2所示,本发明实施例提供的提高压缩率的打包方法,包括以下步骤:
步骤S201:根据打包压缩参数遍历目标目录。
其中,压缩参数是用户设定的,设定压缩参数的目的在于用户选定一个目录作为目标目录,并将目标目录作为遍历的起始目录。
步骤S202:遍历目标目录。
本发明实施例使用深度优先搜索方式对目标目录进行遍历,而深度优先搜索方式采用递归算法,例如,目标目录下有A、C两个子目录,A目录的排序比C目录靠前,那么使用深度优先搜索的方式的遍历顺序为,先遍历完A目录下的文件后,再以A目录作为根目录,遍历A目录下的子目录,再继续以深度优先遍历A目录下子目录下的文件,直到遍历完A目录下所有的元素,然后开始遍历C目录下的元素,同样采用深度优先搜索的方式遍历C目录下的元素。
遍历目标目录的目的在于读取目标目录中的子目录与文件,为后续的打包压缩工作做准备。
步骤S203:通过调用***函数lstat获取文件的属性,通过属性判断遍历读取的内容为子目录或文件,如果为子目录,则进入步骤S204;如果为文件,则进入步骤S205。
需说明的是,直接根据文件的属性可以判断是属于子目录还是属于文件,而文件的属性可以通过调用***函数得到,例如调用***函数lstat。
需要说明的是,目标目录下的内容只有两种,一种是子目录,另一种是目标目录下的文件,而子目录下也可能包含文件,所以上述文件即包括目标目录下的文件又包括子目录下的文件。
步骤S204:读取子目录的路径内容,计算该子目录的路径长度,将计算出的该子目录的路径长度与读取出的子目录的路径内容写入打包文件,再将该子目录作为目标目录,循环步骤S202-步骤S203。
由于15个bit最大能表示整数32768,也就是最大可以保存整数32768,而Linux操作***下最大的路径长度是4096个字节,相当于整数4096,因此,本发明实施例的路径长度占用15个bit,足够保证Linux操作***下的路径长度。
为了在解压缩时一一对应目录和文件,在打包压缩时需要对目录和文件进行标记,对本发明实施例用一个bit表示路径是子目录还是文件,如果路径是子目录,将bit置为1,如果路径是文件,将bit置为0。
因此,本发明实施例路径长度占用磁盘空间两个字节,共16个bit,第一个bit用来标记路径是子目录或文件,而后面的15个bit用于存储路径长度。
获取路径的路径内容就会得到路径长度,例如:获取的路径内容为abcd,这个路径由“a、b、c、d”4个ASCII字符组成,即由4个字节组成,那么这个路径的路径长度为4,即“路径长度占15个bit空间中所保存的内容为整数“4”,如果这个路径是一个目录,所以第1个bit置为1;如果这个路径是一个文件,则第一个bit置为0。
路径内容所占的空间是变化的,具体变化的长度由前面占用15bit的路径长度的取值所决定比如:一个路径由100个字符组成,那么这个路径将占据100个字节,路径长度占15个bit空间中所保存的内容为整数“100”,另一个路径由20个字符组成,那么此路径将占据20个字节,路径长度占15个bit空间中所保存的内容为整数“20”。
路径长度后面跟的是路径内容长度,路径内容长度是路径下的内容的长度,也就是路径下的内容实际占用磁盘空间的长度。
步骤S205:判断文件是否为普通文件,如果为普通文件,则进入步骤S206;如果不为普通文件,则舍弃该文件。
该步骤的判断过程:调用***函数获取文件的属性,将所述文件的属性填充数据结构后,根据所述数据结构的标识位的取值符合预定条件,判断出所述目标目录下的文件或所述目标目录的子目录下的文件为普通文件。具体的:
调用***函数lstat,传入当前文件路径,函数把返回的属性信息填入stat结构,本发明通过判断stat.st_mode中S_IFREG的位是否是1(即(stat.st_mode&S_IFREG)>0),如果是,则表示当前文件为普通文件。需说明的是,这里是以取值为1举例说明,也可以是设定其他取值对应判断出是普通文件。
该步骤根据文件的属性判断遍历得到的文件是不是普通文件,如果遍历得到的文件不是普通文件,将其归类为其它文件,为了在Hybrid架构使用场景下提高压缩率,本发明实施例舍弃非必要的文件,也就是其它文件,舍弃其它文件意味着不对于其它文件进行处理,只保留普通文件进行压缩,以此达到更极致的压缩率。
步骤S206:在判读出是普通文件后,读出文件的路径内容和文件的内容,计算文件的路径长度和文件的内容长度,将计算出的文件的路径长度、文件的内容长度、读出的文件的路径内容、文件的内容写入打包文件,而对于文件的属性信息,如文件访问权限、所有者信息、组信息、最后修改时间等信息,则不写入打包文件,这样可以减少需压缩的内容,进一步提高压缩率。
其中,文件的路径长度计算方法与上述子目录的路径长度计算相同,故不再重复。
而文件的内容长度用4个字节表示,即占用磁盘4个字节,最大可表示整数4294967295,即文件的内容长度占4个字节的空间中所存的内容为整数“4294967295”,意味着单个文件内容最大可以支持4G。
例如,遍历过程中遇到一个文件内容长度为100个字节,那么这4个字节存储的内容就是整数“100”,整数“100”实际上用1个字节就足够存储了,但这里协议必须保证前后一致,所以仍然使用4个字节保存这个长度,如果一个文件内容刚好有4G大小,那么这4个字节也足够存储4G,即“4294967295”这个整数。
文件的内容长度是变化的,具体变化的长度由前面4个字节的文件内容长度的取值所决定,例如:
如果a/b/test.txt文件只包含了“XYZ”3个字符,则这个文件的内容长度为3,那么文件的内容长度占4个字节的空间中所存的内容为整数“3”;紧跟文件内容长度后面的3个字节的内容为“XYZ”,即这个文件的内容占用了3个字节。
如果a/b/test.txt文件中只包含了“ABCDEFG”7个字符,则这个文件的内容长度为7,那么文件的内容长度占4个字节的空间中所存的内容为整数“7”;紧跟文件内容长度后面的7个字节的内容为“ABCDEFG”,即这个文件的内容占用了7个字节。
由上述内容可以看出,在上述步骤S204和步骤S206中,并没有获取文件的属性,没有将文件的属性写入打包文件,在某些使用场景中,如Hybrid架构下,安装包并不需要这些文件的属性,通过舍弃文件的属性能达到更极致的压缩率。
步骤S207:当遍历完所有的目录与文件时,打包压缩流程结束,得到压缩文件。
由于采用的是遍历与打包压缩同时进行的方式,因此,在遍历结束后,打包压缩流程也会结束,得到压缩好的文件。
上述流程详细地描述了本发明实施例提供的提高压缩率的打包方法,通过舍弃非必要的文件,将普通文件写入打包文件进行打包和压缩,以提高文件压缩率,进一步地,打包时还舍弃普通文件的属性,属性不写入打包文件进行打包和压缩,可以进一步提高文件压缩率。
与上述***相对应,本发明还提供一种提高压缩率的打包装置。图3示出了根据本发明实施例的提高压缩率的打包装置的逻辑结构。
如图3所示,本发明实施例提供的提高压缩率的打包装置,包括目标目录遍历单元310、文件类型判断单元320、文件数据获取单元330、打包压缩单元340、子目录数据获取单元350。
目标目录遍历单元310,用于根据打包压缩参数遍历目标目录;
文件类型判断单元320,用于在遍历过程中判断所述目标目录下的文件或所述目标目录的子目录下的文件是否为普通文件;
文件数据获取单元330,用于在所述文件类型单元320判断出是普通文件时,获取所述目标目录下的文件的数据和所述目标目录的子目录下的文件的数据;
打包压缩单元340,用于将所述目标目录下的文件的数据和所述目标目录的子目录下的文件的数据写入打包文件并进行压缩。
其中,所述目标目录下的文件的数据包括文件的内容、文件的内容长度、文件的路径内容与文件的路径长度;所述子目录下的文件的数据包括文件的内容、文件的内容长度、文件的路径内容与文件的路径长度。
其中,所述打包压缩单元340将获取的所述目标目录下的文件的数据和所述目标目录的子目录下的文件的数据写入打包文件时,舍弃文件的属性信息。
子目录数据获取单元350,用于在所述目标目录遍历单元310遍历过程中判断出是所述目标目录的子目录时,获取所述目标目录的子目录的数据,其中,所述子目录的数据包括所述子目录的路径内容与所述子目录的路径长度,不包括子目录下的文件;
所述打包压缩单元340,将获取的所述目标目录的子目录的数据写入打包文件并进行压缩。
所述文件类型判断单元320是在所述遍历过程中调用***函数获取文件的属性,将所述文件的属性填充数据结构后,根据所述数据结构的标识位的取值符合预定条件,判断出所述目标目录下的文件或所述目标目录的子目录下的文件为普通文件。
图4示出了根据本发明实施例的一个具体实施方式的提高压缩率的打包装置的逻辑结构。
如图4所示,在本发明实施例的一个具体实施方式中,子目录数据获取单元350包括:子目录路径获取模块351,用于获取子目录的路径;子目录路径长度获取模块352,用于获取子目录的路径长度;以及
文件数据获取单元330包括:文件内容获取模块331,用于获取目标目录下的文件的内容和子目录下的文件的内容;文件路径内容获取模块332,用于获取目标目录下的文件的路径内容和子目录下的文件的路径内容;文件路径长度获取模块333,用于获取目标目录下的文件的路径长度和子目录下的文件的路径长度;文件内容长度获取模块334,用于获取目标目录下的文件的内容长度和子目录下的文件的内容长度。
所述目标目录遍历单元310遍历过程中是调用***函数获取文件的属性,根据属性判断出遍历读取的内容为所述目标目录下的文件或所述目标目录的子目录。
上述各单元模块的交互关系,具体可以参见前面方法的描述,此处不再赘述。
如上参照附图以示例的方式描述了根据本发明提出的提高压缩率的打包方法及装置。但是,本领域技术人员应当理解,对于上述本发明所提出的终端设备位置的提醒***及方法,还可以在不脱离本发明内容的基础上对其中的实现细节做出各种改进。因此,本发明的保护范围应当由所附的权利要求书的内容确定。

Claims (8)

1.一种文件打包方法,包括:
根据打包压缩参数遍历目标目录;
在遍历过程中根据文件的属性判断出所述目标目录下的文件或所述目标目录的子目录下的文件为普通文件时,获取所述目标目录下的文件的数据和所述目标目录的子目录下的文件的数据;
将获取的所述目标目录下的文件的数据和所述目标目录的子目录下的文件的数据写入打包文件并进行压缩;其中,所述将获取的所述目标目录下的文件的数据和所述目标目录的子目录下的文件的数据写入打包文件时,舍弃文件的属性信息。
2.如权利要求1所述的文件打包方法,还包括:在遍历过程中判断出是所述目标目录的子目录时,获取所述目标目录的子目录的数据,将获取的所述目标目录的子目录的数据写入打包文件并进行压缩;其中,所述子目录的数据包括所述子目录的路径内容与所述子目录的路径长度,不包括子目录下的文件。
3.如权利要求1所述的文件打包方法,其中,
所述目标目录下的文件的数据包括文件的内容、文件的内容长度、文件的路径内容与文件的路径长度;
所述子目录下的文件的数据包括文件的内容、文件的内容长度、文件的路径内容与文件的路径长度。
4.如权利要求1所述的文件打包方法,其中,
所述遍历过程中是调用***函数获取文件的属性,将所述文件的属性填充数据结构后,根据所述数据结构的标识位的取值符合预定条件,判断出所述目标目录下的文件或所述目标目录的子目录下的文件为普通文件。
5.如权利要求1或2所述的文件打包方法,其中,
所述遍历过程中是调用***函数获取文件的属性,根据属性判断出遍历读取的内容为所述目标目录下的文件或所述目标目录的子目录。
6.一种文件打包装置,包括:
目标目录遍历单元,用于根据打包压缩参数遍历目标目录;
文件类型判断单元,用于在遍历过程中根据文件的属性判断所述目标目录下的文件或所述目标目录的子目录下的文件是否为普通文件;
文件数据获取单元,用于在所述文件类型单元判断出是普通文件时,获取所述目标目录下的文件的数据和所述目标目录的子目录下的文件的数据;
打包压缩单元,用于将所述目标目录下的文件的数据和和所述目标目录的子目录下的文件的数据写入打包文件并进行压缩;
其中,所述打包压缩单元将获取的所述目标目录下的文件的数据和所述目标目录的子目录下的文件的数据写入打包文件时,舍弃文件的属性信息。
7.如权利要求6所述的文件打包装置,还包括:
子目录数据获取单元,用于在所述目标目录遍历单元遍历过程中判断出是所述目标目录的子目录时,获取所述目标目录的子目录的数据,其中,所述子目录的数据包括所述子目录的路径内容与所述子目录的路径长度,不包括子目录下的文件;
所述打包压缩单元,将获取的所述目标目录的子目录的数据写入打包文件并进行压缩。
8.如权利要求6中所述的文件打包装置,其中,
所述文件类型判断单元是在所述遍历过程中调用***函数获取文件的属性,将所述文件的属性填充数据结构后,根据所述数据结构的标识位的取值符合预定条件,判断出所述目标目录下的文件或所述目标目录的子目录下的文件为普通文件。
CN201410283913.9A 2014-06-23 2014-06-23 一种文件打包方法及装置 Active CN105446975B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201410283913.9A CN105446975B (zh) 2014-06-23 2014-06-23 一种文件打包方法及装置
PCT/CN2014/088278 WO2015196621A1 (zh) 2014-06-23 2014-10-10 一种文件打包方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410283913.9A CN105446975B (zh) 2014-06-23 2014-06-23 一种文件打包方法及装置

Publications (2)

Publication Number Publication Date
CN105446975A CN105446975A (zh) 2016-03-30
CN105446975B true CN105446975B (zh) 2019-03-15

Family

ID=54936586

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410283913.9A Active CN105446975B (zh) 2014-06-23 2014-06-23 一种文件打包方法及装置

Country Status (2)

Country Link
CN (1) CN105446975B (zh)
WO (1) WO2015196621A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106161633B (zh) * 2016-07-20 2020-05-05 柏科数据技术(深圳)股份有限公司 一种基于云计算环境下打包文件的传输方法及***
CN107402788B (zh) * 2017-07-25 2020-09-25 网易(杭州)网络有限公司 资源打包管理方法与装置
CN107609072B (zh) * 2017-09-01 2020-11-20 联想(北京)有限公司 一种数据处理方法及装置
CN107734022B (zh) * 2017-09-30 2021-08-10 努比亚技术有限公司 静态资源文件下载方法、移动终端及计算机可读存储介质
CN109828955A (zh) * 2019-01-10 2019-05-31 浙江数链科技有限公司 文档处理方法、装置、计算机设备及存储介质
CN110989978A (zh) * 2019-11-06 2020-04-10 北京达佳互联信息技术有限公司 页面打包方法、装置、电子设备及存储介质
CN111538706B (zh) * 2020-04-21 2023-11-14 惠州Tcl移动通信有限公司 数据压缩方法、装置、存储介质及移动终端
CN116069729B (zh) * 2023-04-06 2023-06-27 深圳市微克科技有限公司 一种文档智能打包方法、***及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102073633A (zh) * 2009-11-23 2011-05-25 腾讯科技(深圳)有限公司 资源文件的存储访问方法及装置
CN102761540A (zh) * 2012-05-30 2012-10-31 北京奇虎科技有限公司 数据压缩方法、装置、***以及服务器
CN102881036A (zh) * 2012-07-30 2013-01-16 北京中科盘古科技发展有限公司 一种动画场景文件压缩的方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1151436C (zh) * 2000-07-31 2004-05-26 岱升科技股份有限公司 将操作***与应用程序放入存储装置的方法
CN1169118C (zh) * 2001-07-04 2004-09-29 英业达集团(南京)电子技术有限公司 电子装置上语音播放的方法
KR100613076B1 (ko) * 2004-12-14 2006-08-16 주식회사 팬택앤큐리텔 이동통신 단말기에서의 이미지 파일 관리 방법
US20120158677A1 (en) * 2010-12-20 2012-06-21 Apple Inc. Systems and methods for streaming compressed files via a non-volatile memory

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102073633A (zh) * 2009-11-23 2011-05-25 腾讯科技(深圳)有限公司 资源文件的存储访问方法及装置
CN102761540A (zh) * 2012-05-30 2012-10-31 北京奇虎科技有限公司 数据压缩方法、装置、***以及服务器
CN102881036A (zh) * 2012-07-30 2013-01-16 北京中科盘古科技发展有限公司 一种动画场景文件压缩的方法

Also Published As

Publication number Publication date
CN105446975A (zh) 2016-03-30
WO2015196621A1 (zh) 2015-12-30

Similar Documents

Publication Publication Date Title
CN105446975B (zh) 一种文件打包方法及装置
CN104461504B (zh) 一种终端应用程序的管理方法
CN105339924B (zh) 实现压缩服务的***和方法
CN104185840B (zh) 在持续部署流水线中用来优先化多个测试的方法、***和装置
KR101522014B1 (ko) 앱 아이콘을 관리하는 방법, 장치 및 기록매체
CN111176976A (zh) 测试数据的生成方法和装置、存储介质及电子装置
CN110941424B (zh) 编译参数优化方法、装置及电子设备
CN103259936B (zh) 移动终端操作***升级方法及其装置
CN104461505B (zh) 一种终端
CN112114849B (zh) 一种资源更新方法和装置
CN104427341B (zh) 一种图像处理方法、装置及终端
CN106886568B (zh) 一种分表方法、装置及电子设备
CN105975311A (zh) 一种应用启动方法及装置
CN103220352A (zh) 终端、服务器、文件存储***和文件存储方法
CN104166701A (zh) 机器学习方法及***
CN107797823A (zh) 业务规则管理方法、装置、存储介质和计算机设备
CN109947450A (zh) ***文件升级方法、装置、移动终端及可读存储介质
CN109388614A (zh) 一种目录文件个数配额的方法、***及设备
CN111159265B (zh) 一种etl数据迁移方法和***
CN110413711A (zh) 一种差异数据获取方法及其存储介质
CN108966283A (zh) 一种遥测数据压缩传输方法、装置和计算机可读介质
CN103812946B (zh) 一种ar应用程序在线云更新的方法和***
CN106406923A (zh) 动态库文件的处理方法及装置
CN110990356A (zh) 一种用于逻辑镜像的实时自动扩容方法和***
CN106874060A (zh) 一种判断jar包是否被引用的方法及设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200526

Address after: 310052 room 508, floor 5, building 4, No. 699, Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province

Patentee after: Alibaba (China) Co.,Ltd.

Address before: Two, room 902, West 64, 66 Middle Road, Tianhe District, Guangdong, Guangzhou, China 510665

Patentee before: GUANGZHOU UCWEB COMPUTER TECHNOLOGY Co.,Ltd.