码迷,mamicode.com
首页 > 其他好文 > 详细

zip相关知识梳理(一)

时间:2018-12-09 12:18:18      阅读:219      评论:0      收藏:0      [点我收藏+]

标签:标志位   本地   tab   efs   数据区   pre   ali   文件的   dff   

zip相关知识梳理(一)

经过对zip文件的长时间研究,对zip文件进行相关知识进行梳理,虽然网上很多牛人对其做了相关基础解析,但是对于特殊情况没有进行说明,比如超过4G的zip文件该以什么格式进行编译,现本人对其进行详细讲解。如有不足,欢迎各位大神指点!

一、zip文件格式

zip文件格式:
[本地文件头1]
[档案数据1]
[数据描述符1]
    .
    .
    .
[本地文件头n]
[档案数据n]
[数据描述符n]
[存档解密标题](EFS)
[存档额外数据记录](EFS)
[中央目录]
[zip64中心目录记录结束]
[中央目录定位器的zip64端] 
[中央目录记录结束]

因此压缩源文件数据区包括三个部分:[本地文件头] + [档案数据] + [数据描述符]

1.本地头文件

用于标识该文件的开始,记录了该压缩文件的信息。

Offset Bytes description
0 4 文件头标识,固定值(0x04034b50
4 2 解压文件所需的pkware最低版本
6 2 通用比特标志位
8 2 压缩方式
10 2 文件最后修改时间
12 2 文件最后修改日期
14 4 CRC-32校验码
18 4 压缩后的大小
22 4 未压缩的大小
26 2 文件名长度
28 2 扩展区长度
30 n 文件名
30+n m 扩展区

其中通用标志位具体参数获取如下:

Bytes description
0 如果设置,表示文件已加密
2 1

0 0 正常压缩方式

0 1 最大压缩方式

1 0 快速压缩方式

1 1 最快压缩方式

3 如果设置此位,CRC-32与未压缩大小在头文件中设为0,正常值放到数据描述符中
4 位方法8保留,为了增强压缩
5 如果置位,表示该文件为压缩的补充数据
6 如果置位,则提取值所需的版本设置为至少 50,并需要结合位0,提取值所需的版本必须 至少为51
7 目前未使用
8 目前未使用
9 目前未使用
10 目前未使用
11 目前未使用
12 由PKWARE保留以增强压缩
13 在加密中央目录时使用,以指示本地标题中的选定数据值被屏蔽以隐藏其实际值
14 由PKWARE保留
15 由PKWARE保留

zip相关知识梳理(一)

标签:标志位   本地   tab   efs   数据区   pre   ali   文件的   dff   

原文地址:https://www.cnblogs.com/yuanchenghao/p/10090228.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!