Microsoft .NET終于提供了一個通用的Zip庫
.NET Framework 與 Zip 文件格式間總是存在著一種不可思議的關系。在一開始,.NET 提供了對 Zip 文件的支持,但其實現方式卻是大多數人都沒有意識到的。很久之前被拋棄的J#編程語言包含了 Java 的 java.util.zip 包。在 2003 年 Ianier Munoz 發表的一篇文章中介紹了如何在 C# 中使用J# Zip 庫。
.NET 2.0 在這個問題上則出現了明顯的倒退。那時,J#已經被開發者社區所遺忘,提供給我們的則是幾乎毫無用處的 IO.Compression 命名空間。DeflateStream 與 GZipStream 類只提供了單向、基于流的壓縮。此外,他們還缺乏處理與多種文件檔案如 Zip 相關的元數據的能力。
2006年,微軟通過 ZipPackage 類提供了一個異常笨拙的處理 Zip 文件的 API。創建該 API 的主要目的在于支持 Open XML Paper Specification(XPS)。XPS 最初被看作是與 Adobe PDF 文件格式進行直接競爭的一個嘗試,但后來這些努力還是被放棄了。如今的 XPS 主要用于 Windows 的假脫機打印,用于替換基于 GDI 的 WinPrint(如果打印機支持的話)。
對于 .NET 4.5 來說,我們終于看到了一個值得期待的用于處理 Zip 文件的內建 API。雖然現在談論 ZipArchive 類是否是 DotNetZip 等庫的競爭者還為時尚早,但它至少向那些由于許可問題而無法使用開源庫的開發者提供了一些可用的東西。Tugberk Ugurlu 研究并介紹了如何使用 .NET 4.5 中的 ZipArchive。
查看英文原文:Microsoft .NET Finally Offers a General Purpose Zip Library