Microsoft .NET终于提供了一个通用的Zip库
openkk 12年前
<p> .NET Framework 与 <a href="/misc/goto?guid=4958345004284451173">Zip 文件格式</a>间总是存在着一种不可思议的关系。在一开始,.NET 提供了对 Zip 文件的支持,但其实现方式却是大多数人都没有意识到的。很久之前被抛弃的<a href="/misc/goto?guid=4958345005084689705">J#编程语言</a>包含了 Java 的 java.util.zip 包。在 2003 年 Ianier Munoz 发表的一篇文章中介绍了<a href="/misc/goto?guid=4958345006106103663">如何在 C# 中使用J# Zip 库</a>。</p> <p> .NET 2.0 在这个问题上则出现了明显的倒退。那时,J#已经被开发者社区所遗忘,提供给我们的则是几乎毫无用处的 IO.Compression 命名空间。<a href="/misc/goto?guid=4958345007128293543">DeflateStream</a> 与 <a href="/misc/goto?guid=4958345007941979882">GZipStream</a> 类只提供了单向、基于流的压缩。此外,他们还缺乏处理与多种文件档案如 Zip 相关的元数据的能力。</p> <p> 2006年,微软通过 <a href="/misc/goto?guid=4958345008739945509">ZipPackage</a> 类提供了一个<a href="/misc/goto?guid=4958345009537339622">异常笨拙的处理 Zip 文件的 API</a>。创建该 API 的主要目的在于支持 <a href="/misc/goto?guid=4958345010333784610">Open XML Paper Specification</a>(XPS)。XPS 最初被看作是与 Adobe PDF 文件格式进行直接竞争的一个尝试,但后来这些努力还是被放弃了。如今的 XPS 主要用于 Windows 的假脱机打印,用于替换基于 GDI 的 WinPrint(如果打印机支持的话)。</p> <p> 对于 .NET 4.5 来说,我们终于看到了一个值得期待的用于处理 Zip 文件的内建 API。虽然现在谈论 <a href="/misc/goto?guid=4958345011129592674">ZipArchive</a> 类是否是 <a href="/misc/goto?guid=4958345011928875581">DotNetZip</a> 等库的竞争者还为时尚早,但它至少向那些由于许可问题而无法使用开源库的开发者提供了一些可用的东西。Tugberk Ugurlu 研究并介绍了<a href="/misc/goto?guid=4958345012718667851">如何使用 .NET 4.5 中的 ZipArchive</a>。</p> <p> <strong>查看英文原文:</strong><a href="/misc/goto?guid=4958345013504207762">Microsoft .NET Finally Offers a General Purpose Zip Library</a></p> <div id="come_from"> 来自: <a id="link_source2" href="/misc/goto?guid=4958345014298269494" target="_blank">InfoQ</a> </div>