首页 > 其他分享 >转(zip文件格式说明)

转(zip文件格式说明)

时间:2023-06-29 19:56:00浏览次数:41  
标签:文件 File zip 压缩 说明 header 文件格式 file 目录

zip文件由三部分组成:压缩的文件内容源数据、压缩的目录源数据、目录结束标识结构

1、 压缩的文件内容源数据:

记录着压缩的所有文件的内容信息,其数据组织结构是对于每个文件都由file header 、file data、data descriptor三部分组成。

1)File header:用于标识该文件的开始,结构说明如下:

 

                               Header

Offset

Bytes

Description

0

4

Local file header signature = 0x04034b50 (read as a little-endian number)

文件头标识,值固定(0x04034b50)

4

2

Version needed to extract (minimum)

解压文件所需 pkware最低 版本 

6

2

General purpose bit flag

通用位标记

8

2

Compression method

压缩方法

10

2

File last modification time

文件最后修改时间

12

2

File last modification date

文件最后修改日期

14

4

CRC-32

说明采用的算法。

18

4

Compressed size

压缩后的大小。

22

4

Uncompressed size

非压缩的大小。

26

2

File name length (n)

文件名长度

28

2

Extra field length (m)

扩展区长度

30

n

File name

文件名

30+n

m

Extra field

扩展区

 

2)file data :相应压缩文件的源数据。

 

3)data descriptor:用于标识该文件压缩结束,该结构只有在相应的header中通用标记字段的第3位设为1时才会出现,紧接在压缩文件源数据后。这个数据描述符只用在不能对输出的 ZIP 文件进行检索时使用。例如:在一个不能检索的驱动器(如:磁带机上)上的 ZIP 文件中。如果是磁盘上的ZIP文件一般没有这个数据描述符。

结构说明如下

   Data descriptor

Offset

Bytes

Description[18]

 0

4

Local file header signature = 0x08074b50

本地header标记

 4

4

CRC-32

CRC-32

 8

4

Compressed size

压缩后大小

 12

4

Uncompressed size

非压缩的大小

 

2、 压缩的目录源数据

对于待压缩的目录而言,每一个子目录对应一个压缩目录源数据,记录该目录的描述信息。压缩包中所有目录源数据连续存储在整个归档包的最后,这样便于向包中追加新的文件。

结构说明如下

Central directory file header

 

Offset

Bytes

Description[18]

 0

4

Central directory file header signature =0x02014b50

核心目录文件header标识=(0x02014b50)

 4

2

Version made by

压缩所用的pkware版本

 6

2

Version needed to extract (minimum)

解压所需pkware的最低版本

 8

2

General purpose bit flag

通用位标记

10

2

Compression method

压缩方法

12

2

File last modification time

文件最后修改时间

14

2

File last modification date

文件最后修改日期

16

4

CRC-32

CRC-32算法

20

4

Compressed size

压缩后大小

24

4

Uncompressed size

未压缩的大小

28

2

File name length (n)

文件名长度

30

2

Extra field length (m)

扩展域长度

32

2

File comment length (k)

文件注释长度

34

2

Disk number where file starts

文件开始位置的磁盘编号

36

2

Internal file attributes

内部文件属性

38

4

External file attributes

外部文件属性

42

4

Relative offset of local file header. This is the number of bytes between the start of the first disk on which the file occurs, and the start of the local file header. This allows software reading the central directory to locate the position of the file inside the ZIP file.

本地文件header的相对位移。

46

n

File name

目录文件名

46+n

m

Extra field

扩展域

46+n+m

k

File comment

文件注释内容

 

3、 目录结束标识结构

目录结束标识存在于整个归档包的结尾,用于标记压缩的目录数据的结束。

结构说明如下

End of central directory record

Offset

Bytes

Description[18]

 0

4

End of central directory signature =0x06054b50

核心目录结束标记(0x06054b50)

 4

2

Number of this disk

当前磁盘编号

 6

2

Disk where central directory starts

核心目录开始位置的磁盘编号

 8

2

Number of central directory records on this disk

该磁盘上所记录的核心目录数量

10

2

Total number of central directory records

核心目录结构总数

12

4

Size of central directory (bytes)

核心目录的大小

16

4

Offset of start of central directory, relative to start of archive

核心目录开始位置相对于archive开始的位移

20

2

Comment length (n)

注释长度

22

n

Comment

注释内容

 转于:http://blog.sina.com.cn/s/blog_4c3591bd0100zzm6.html

标签:文件,File,zip,压缩,说明,header,文件格式,file,目录
From: https://www.cnblogs.com/li-sx/p/17515063.html

相关文章

  • ACC自适应巡航控制模型simulink模型+carsim设置 可选购模型说明文件和操作说明
    ACC自适应巡航控制模型simulink模型+carsim设置可选购模型说明文件和操作说明原创文章,转载请说明出处,资料来源:http://imgcs.cn/5c/642513652384.html随着各国科学技术的发展,各国的汽车保有量持续增加,这反映了国家经济发展的快速、人均GDP的增长和道路建设的发展。但是,汽车保有量的......
  • MySQL 8.0.33 my.ini说明
    #其他默认调整值#MySQLServer实例配置文件#-------------------------------------------------------------------------------------------------------------------------------------------------------------#由MySQLServer实例配置向导生成###安装说明#------------......
  • c#反射和特性配合使用案例说明
    在C#中,反射(Reflection)是一个强大的特性,它允许我们在运行时动态地获取和操作类型、成员、方法等信息。以下是一个使用反射的案例,配合特性一起使用,来实现属性验证的功能:假设我们有一个用户类(User),其中包含了一些属性(如姓名、年龄等),我们想要在设置这些属性值的时候进行一些验证......
  • python zipfile 打包压缩 层级过多的解决措施
    zipfile使用详细https://www.cnblogs.com/yyds/p/6427349.html解决方案https://blog.csdn.net/csrh131/article/details/107895772操作案例和总结https://blog.51cto.com/u_16055028/6475844https://mp.weixin.qq.com/s/2RDCnQLORmn8kMHJsOhenA......
  • 举例说明exec()函数的用法
    举例说明exec()函数的用法━━━━━━━━━━━━━━━━━━━━━━━━━exec()函数可以用于执行一段字符串作为代码,这在某些场景下非常有用。以下是一些exec()函数的用法示例:动态执行Python代码:code_str='print("Hello,World!")'exec(code_str)在这个例子中......
  • supervisor的使用与配置说明
    Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启.一.安装1.1安装#根目录下执行安装命令yuminstallsupervisor#安装生成路径:#\etc\supervisor.d#\etc\supervisor.conf主配置......
  • 举例说明 exec() 函数的用法
    举例说明exec()函数的用法━━━━━━━━━━━━━━━━━━━━━━━━━exec()函数可以用于执行一段字符串作为代码,这在某些场景下非常有用。以下是一些exec()函数的用法示例:动态执行Python代码:code_str='print("Hello,World!")'exec(code_str)在这个例子中......
  • redis压缩列表ziplist
     压缩列表(ziplist)是Redis的一种内存紧凑型的数据结构,它是一个字节数组,可以包含任意多个元素,每个元素可以是一个字节数组或一个整数。压缩列表的结构由多个字段组成,包括zlbytes(压缩列表的字节长度),zltail(压缩列表尾元素的偏移量),zllen(压缩列表的元素数目),entryX(压缩列表存储的......
  • 【深入浅出Docker原理及实战】「Docker安装说明」零基础+全方位带你学习探索Docker容
    安装DockerDocker中的容器是一种轻量级的虚拟化技术,它基于镜像运行并具有自己的状态。下面是Docker容器的安装操作。Docker有三种更新频道:stable、test和nightly。官方网站提供了各种环境下的安装指南,主要包括Linux、Windows10和macOS。这里我们侧重点去介绍和分析说明对应......
  • 代购源码,淘宝代购系统源码,代购程序,代购系统源码PHP前端源码参数说明
    代购业务场景:代购业务近年兴起的一种购物模式,是帮国外客户购买中国商品。主要通过外贸代购模式,把淘宝、天猫等电商平台的全站商品通过API接入到你的网站上,瞬间就可以架设一个有数亿产品的大型网上商城,而且可以把这些中文的商品全部自动翻译成各国语言,能让国外客户看懂,直接在网站......