一个 ZIP
文件的普通格式
----------------------
    一个
ZIP 文件由三个部分组成:
        
        压缩源文件数据区+压缩源文件目录区+压缩源文件目录结束标志
 
 
    1、压缩源文件数据区
   
在这个数据区中每一个压缩的源文件/目录都是一条记录,记录的格式如下:
      
      
[文件头+ 文件数据 + 数据描述符]
 
      
a、文件头结构
         组成                    
长度
      文件头标记   
             
4 bytes  (0x04034b50)
      解压文件所需
pkware 版本    2
bytes
     
全局方式位标记             
2 bytes
    压缩方式                 
  2 bytes
 
  最后修改文件时间            
2 bytes
   
最后修改文件日期            
2 bytes
    CRC-32校验                
 4 bytes
  
 压缩后尺寸                  4
bytes
  
 未压缩尺寸                  4
bytes
   
文件名长度              
   2
bytes
     
扩展记录长度         
      2
bytes
   
文件名                    
(不定长度)
   
扩展字段                
  (不定长度)
      
       
b、文件数据
 
       
       
c、数据描述符
    组成     长度
    CRC-32校验                 
4 bytes
 
  压缩后尺寸                  
4 bytes
  
 未压缩尺寸                  
4 bytes
 
    这个数据描述符只在全局方式位标记的第3位设为1时才存在(见后详解),紧接在压缩数据的最后一个字节后。这个数据描述符只用在不能对输出的
ZIP 文件进行检索时使用。例如:在一个不能检索的驱动器(如:磁带机上)上的 ZIP
文件中。如果是磁盘上的ZIP文件一般没有这个数据描述符。
 
 
     2、压缩源文件目录区
    
在这个数据区中每一条纪录对应在压缩源文件数据区中的一条数据
 
      组成                           
长度
      目录中文件文件头标记             4
bytes  (0x02014b50)
      压缩使用的 pkware
版本          2
bytes
      解压文件所需
pkware
版本         2
bytes
      全局方式位标记                   2
bytes
      压缩方式                        2
bytes
      最后修改文件时间                 2
bytes
      最后修改文件日期                 2
bytes
      CRC-32校验                 4
bytes
      压缩后尺寸                      4
bytes
      未压缩尺寸                      4
bytes
      文件名长度                      2
bytes
      扩展字段长度                    2
bytes
      文件注释长度                    2
bytes
      磁盘开始号                      2
bytes
      内部文件属性                    2
bytes
      外部文件属性                    4
bytes
        局部头部偏移量                  4
bytes
      文件名                       (不定长度)
      扩展字段                     (不定长度)
        文件注释                     (不定长度)
 
 
    3、压缩源文件目录结束标志
 
       组成                         
长度
        目录结束标记                    4
bytes  (0x02014b50)
       
当前磁盘编号                    2
bytes
        目录区开始磁盘编号              2
bytes
      本磁盘上纪录总数                 2
bytes
      目录区中纪录总数       
         2
bytes
      目录区尺寸大小                   4
bytes
      目录区对第一张磁盘的偏移量        4
bytes
      ZIP
文件注释长度                 2
bytes
      ZIP
文件注释                   (不定长度)
							
		 
						
		加载中,请稍候......