提取 ZIP 檔案

無限制 作業。檔案大小可達 2.5GB。免費,永遠免費。

私密與安全

一切都在您的瀏覽器中進行。您的檔案絕不接觸我們的伺服器。

極速

無需上傳,無需等待。在您拖放檔案的瞬間即可轉換。

完全免費

無需帳戶。無隱藏費用。無檔案大小限制花招。

什麼是 ZIP 格式?

Zip 封存檔

ZIP 檔案格式是一種廣泛使用的壓縮和封存格式,允許將多個檔案打包成一個壓縮檔案。它最初是由 Phil Katz 於 1989 年創建,從此成為檔案壓縮和分發的普遍標準。ZIP 格式使用無損壓縮演算法的組合來縮小所包含檔案的大小,同時仍允許依需求個別解壓縮。

ZIP 封存檔包含一系列檔案記錄,每個記錄代表一個壓縮檔案,後面接著封存檔末端的中央目錄。每個檔案記錄包含檔案的元資料,例如其名稱、大小和時間戳記,以及壓縮檔案資料本身。中央目錄包含封存檔中所有檔案記錄的清單,以及其他元資料。

ZIP 格式支援多種壓縮方法,但最常用的方法是 DEFLATE,它基於 LZ77 演算法和 Huffman 編碼。DEFLATE 的運作方式是尋找重複的資料序列,並將它們替換為對先前出現項目的參照,結合 Huffman 編碼來有效表示壓縮資料。這允許大幅縮小大小,特別是對於基於文字的檔案。

若要建立 ZIP 封存檔,會先使用所選的壓縮方法個別壓縮檔案。然後將每個壓縮檔案新增到封存檔中,作為一個檔案記錄,其中包含一個本機檔案標頭,後面接著壓縮資料。本機檔案標頭包含元資料,例如檔案名稱、壓縮方法、CRC-32 校驗和、壓縮和未壓縮大小,以及時間戳記。

在新增所有檔案記錄後,會在封存檔末端寫入中央目錄。中央目錄以簽章開始,並包含每個檔案記錄的檔案標頭,其中包含與本機檔案標頭類似的元資料。此外,中央目錄還包含有關整個封存檔的資訊,例如檔案數量和中央目錄的大小。

最後,ZIP 封存檔以中央目錄結束記錄作結,其中包含簽章、中央目錄開始所在的磁碟數量、中央目錄記錄數量、中央目錄大小、中央目錄開始相對於封存檔開始的偏移量,以及註解欄位。

ZIP 格式的主要功能之一是支援各種壓縮方法。除了 DEFLATE 之外,它還支援 STORE 方法(無壓縮)、BZIP2、LZMA、PPMd 等。這種靈活性允許在壓縮比和處理時間之間取得平衡,具體取決於使用案例的特定需求。

ZIP 格式的另一個重要方面是它支援檔案和目錄加密。傳統的 ZIP 加密方案使用簡單的基於密碼的加密方法,但這在現代 ZIP 工具中已 weitgehend被更安全的 AES 加密取代。當檔案加密時,其壓縮資料會使用所選的加密方法加密,並將其他元資料新增到檔案標頭中以指示加密狀態。

ZIP 格式還包含用於資料完整性檢查和錯誤偵測的功能。每個檔案記錄都包含未壓縮資料的 CRC-32 校驗和,這允許在解壓縮時驗證檔案的完整性。此外,中央目錄包含整個中央目錄結構的 CRC-32 校驗和,為整個封存檔提供額外的完整性檢查層。

多年來,ZIP 格式已進行多項擴充和增強,以改善其功能和效率。其中一項擴充是 ZIP64 格式,它允許封存檔和檔案的大小超過 4 GB。這是透過使用 64 位元欄位來表示大小和偏移量值,而不是原始的 32 位元欄位來實現的。另一項擴充是使用檔案名稱和註解編碼,這允許在檔案名稱和註解中使用 Unicode 字元。

ZIP 格式也已改編為用於各種專業領域,例如辦公室生產力套件使用的 OpenDocument 格式、用於分發 Java 應用程式的 JAR(Java 封存檔)格式,以及用於電子書的 EPUB 格式。在這些情況下,ZIP 格式作為容器,用於儲存特定檔案類型和各個格式所需的元資料。

儘管 ZIP 格式已經問世一段時間,但它仍然廣泛使用,並在各種平台和裝置上獲得支援。它的簡潔性、效率和相容性使其成為檔案壓縮和分發的首選。然而,ZIP 格式也有一些限制,例如它缺乏對分割封存檔、實體壓縮或復原記錄的內建支援。

為了解決其中一些限制,已開發出替代的封存格式,例如 RAR、7z 和 TAR。這些格式在某些情況下提供額外的功能和更高的壓縮比,但它們可能沒有與 ZIP 相同程度的通用支援。

總之,ZIP 檔案格式是一種多功能且高效的壓縮和封存格式,經得起時間考驗。它將多個檔案打包在一起、有效壓縮它們並提供資料完整性檢查的能力,使其成為檔案儲存和分發的必要工具。儘管有一些限制,但 ZIP 格式仍然廣泛使用和支援,這要歸功於它的簡潔性和相容性。

檔案壓縮透過減少冗餘,讓相同的資訊佔用更少的位元。可壓縮的上限受資訊理論約束:對於無失真壓縮,上界是信源熵(參見香農的信源編碼定理以及他於 1948 年發表的《通信的數學理論》)。對於有失真壓縮,碼率與感知品質之間的權衡由率失真理論描述。

兩大支柱:建模與編碼

多數壓縮器分兩個階段。首先,模型會預測或揭露資料中的結構。接著,編碼器把這些預測轉成近乎最優的位元型態。經典的建模家族是 Lempel–Ziv:LZ77 (1977)及 LZ78 (1978) 會偵測重複子字串並輸出參照而非原始位元組。編碼面則由霍夫曼編碼(見原始論文1952)為較常出現的符號分配更短的碼字。算術編碼範圍編碼再進一步逼近熵極限,而現代的非對稱數值系統(ANS)則用查表方式取得相似壓縮率。

常見格式怎麼做

DEFLATE(被 gzipzlibZIP 採用)把 LZ77 和霍夫曼編碼結合。其規格完全公開:DEFLATERFC 1951、zlib 封裝RFC 1950以及 gzip 檔案格式RFC 1952。Gzip 針對串流設計並明確不提供隨機存取。PNG 影像則把 DEFLATE 規範為唯一的壓縮方式(視窗最多 32 KiB),詳見 PNG 規格「Compression method 0… deflate/inflate… at most 32768 bytes」W3C/ISO PNG 第二版

Zstandard (zstd): 針對高壓縮率與極快解壓而設計的通用壓縮器。格式記載於RFC 8878(以及HTML 鏡像)和 GitHub 上的參考規格文件。與 gzip 類似,基本框架並不追求隨機存取。zstd 的絕招是字典:從語料擷取的小樣本能大幅改善許多小型或相似檔案的壓縮(參閱python-zstandard 字典文件Nigel Tao 的示例)。各實作同時支援「非結構化」與「結構化」字典(討論)

Brotli: 為網頁內容(如 WOFF2 字體、HTTP)優化,結合靜態字典與類 DEFLATE 的 LZ+熵編碼核心。規格載於RFC 7932,文件同時指出滑動視窗為 2WBITS-16,WBITS 介於 [10, 24](1 KiB-16 B 至 16 MiB-16 B),並且不嘗試隨機存取。Brotli 常在網頁文字上優於 gzip,解碼也相當快速。

ZIP 容器: ZIP 是一種檔案封存格式,可存放使用多種壓縮法(deflate、store、zstd 等)的項目。權威規格是 PKWARE 的 APPNOTE(參見APPNOTE 入口托管副本以及美國國會圖書館的概覽ZIP File Format (PKWARE)/ZIP 6.3.3)。

常見問題解答

什麼是檔案壓縮?

檔案壓縮是一個減少檔案或檔案群大小的過程,通常用於節省儲存空間或加速網路傳輸。

檔案壓縮是如何運作的?

檔案壓縮運作原理,透過識別並移除數據中的冗餘資訊。它使用演算法將原始數據編碼在較小的空間裡。

檔案壓縮有什麼類型?

兩種主要的檔案壓縮類型是無失真及有失真壓縮。無失真壓縮可以完美地恢復原始檔案,然而有失真壓縮在一些資料品質的損失下能得到更大的壓縮程度。

請給出一個檔案壓縮工具的範例?

一個常見的檔案壓縮工具範例是WinZip,它支援多種壓縮格式包括ZIP與RAR。

檔案壓縮會影響檔案質量嗎?

在無失真壓縮中,質量保持不變。然而,在有失真壓縮中,可能會有顯著的質量下降,因為它刪除了一些較不重要的數據以便更大程度地減少檔案大小。

檔案壓縮安全嗎?

是的,相對於資料的完整性來說,檔案壓縮是安全的,尤其是無失真壓縮。然而,如同所有檔案,被壓縮的檔案也可能受到惡意軟體或病毒的攻擊,所以總是需要有專業的安全軟體以保護。

什麼類型的檔案可以壓縮?

幾乎所有種類的檔案都可以被壓縮,包括文字檔案、圖像、音訊、視頻和軟體檔案。然而,壓縮程度可以因檔案類型而有顯著的不同。

什麼是ZIP檔?

ZIP檔是一種使用無失真壓縮以減少一個或多個檔案大小的檔案格式。在ZIP檔中的多個檔案被有效地打包為單一的檔案,這也讓分享變得更加容易。

我可以壓縮一個已經壓縮過的檔案嗎?

技術上可行,儘管額外的大小減少可能非常小或甚至適得其反。壓縮一個已經壓縮過的檔案有時可能會增加其大小,原因在於壓縮演算法所增加的metadata。

我該如何解壓壓縮的檔案?

解壓壓縮的檔案,通常需要一個解壓縮或解zip的工具,像是WinZip或7-Zip。這些工具可以从壓縮格式中提取原始檔案。