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 文件註釋 (不定長度)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章