壓縮原始檔資料區+壓縮源檔案目錄區+壓縮源檔案目錄結束標誌
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 檔案注釋 (不定長度)
讀取zip檔案
public class ziptest public static void main string args throws filenotfoundexception,ioexception zipinputstream zis new zipinputstream new fileinputs...
ZIP檔案壓縮
在開發過程中遇到乙個小需求,將附件中的檔案進行壓縮,壓縮檔案以前沒怎麼接觸過,記錄下,直接上 將附件中的檔案壓縮 param filemap 壓縮前的檔案 return map 壓縮後的檔案 private mapfilescompressionzip mapfilemap catch excepr...
檔案壓縮zip
壓縮檔案 原資料夾路徑 目的檔案路徑以及檔名稱 public static void createzip string sourcefilepath,string destinationzipfilepath 遞迴壓縮檔案 待壓縮的檔案或資料夾路徑 打包結果的zip檔案路徑 類似 d workspa...