Microsoft .NET 终于提供了一个通用的 Zip 库

  • Jonathan Allen
  • 张龙

2012 年 6 月 19 日

话题:语言 & 开发

.NET Framework 与Zip 文件格式间总是存在着一种不可思议的关系。在一开始,.NET 提供了对 Zip 文件的支持,但其实现方式却是大多数人都没有意识到的。很久之前被抛弃的J# 编程语言包含了 Java 的 java.util.zip 包。在 2003 年 Ianier Munoz 发表的一篇文章中介绍了如何在 C# 中使用 J# Zip 库

.NET 2.0 在这个问题上则出现了明显的倒退。那时,J# 已经被开发者社区所遗忘,提供给我们的则是几乎毫无用处的 IO.Compression 命名空间。DeflateStreamGZipStream类只提供了单向、基于流的压缩。此外,他们还缺乏处理与多种文件档案如 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

语言 & 开发