.NET中zip的压缩和解压

      在.NET可以通过多种方式实现zip的压缩和解压:1、使用System.IO.Packaging;2、使用第三方类库;3、通过 System.IO.Compression 命名空间中新增的ZipArchive、ZipFile等类实现。

     一、使用System.IO.Packaging压缩和解压

     Package为一个抽象类,可用于将对象组织到定义的物理格式的单个实体中,从而实现可移植性与高效访问。ZIP 文件是Package的主物理格式。 其他Package实现可以使用其他物理格式(如 XML 文档、数据库或 Web 服务。与文件系统类似,在分层组织的文件夹和文件中引用 Package 中包含的项。虽然 Package 是抽象类,但 Package.Open 方法默认使用 ZipPackage 派生类。

    System.IO.Packaging在WindowsBase.dll程序集下,使用时需要添加对WindowsBase的引用。

    1、将整个文件夹压缩成zip

Code

      2、将单个文件添加到zip文件中

Code

       3、zip文件解压

Code

      使用Package压缩文件会在zip文件自动生成[Content_Type].xml,用来描述zip文件解压支持的文件格式。

Code

 

      同样,如果zip文件不包含[Content_Type].xml文件,或者[Content_Type].xml文件不包含所对应扩展名的描述(手动添加的[Content_Type].xml也是可以),将无法解压文件。

      二、使用第三方类库

      zip的压缩和解压使用比较的有SharpZipLibDotNetZip

      1、SharpZipLib,也称为“#ziplib”,基于GPL开源,支持Zip,GZip,Tar和BZip2的压缩和解压缩。

      支持.NET 1.1,NET 2.0(3.5、4.0).

      (1)zip压缩

Code

       (2)解压zip

Code

      2、DotNetLib,是基于”WS-PL”开源,使用比较简单
     (1)压缩

Code

     (2)解压

Code

    三、在.NET 4.5使用ZipArchive、ZipFile等类压缩和解压

Code

posted @ 2012-05-28 00:54 Asharp 阅读(...) 评论(...) 编辑 收藏