Jul18

Zip文件数据结构说明

Author: leeon  Click: 6142   Comments: 0 Category: 算法  Tag: zip

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、 压缩的目录源数据

对于待压缩的目录而言,每一个子目录对应一个压缩目录源数据,记录该目录的描述信息。压