C#实现文件的压缩和解压缩

在C#中实现文件的压缩和解压缩,需要使用第三方的组建完成。常用的是:SharpZipLib组建。

下载地址:http://www.icsharpcode.net/OpenSource/SharpZipLib/Download.aspx

这里是我下载好的,直接使用:/Files/sunyaling/ICSharpCode.SharpZipLib.rar

1、压缩和解压缩有两种典型的算法,一种是BZIP2算法,另一种是GZIP算法。BZIP2能够获得较高的压缩比,但是压缩和解压缩比较耗时,GZIP效率比较高,但是压缩比较低。

2、BZIP2压缩算法的相关类,位于命名空间:ICSharpCode.SharpZipLib.BZip2中,算法要求指定输入流和输出流,并指定压缩方法使用的块大小,一般为2048.

3、GZIP压缩算法的相关类,位于命名空间:ICSharpCode.SharpZipLib.GZip中,首先创建GZipOutputStream类实例,作为压缩文件的输出流,使用GZipOutputStream类实例的Write方法,将从源文件读取的数据写入输入流。同时完成压缩运算。

4、使用实例:

Code
我只使用了GZIP的压缩,代码如下:
Code

GZIP最终压缩为gz格式的压缩文件,而不是zip格式的压缩文件,一开始不明白乱用一气,但方法是对的。

下面介绍如假包换的zip压缩文件的方法,其实都大同小异:

Code

详细学习如何压缩文件访问下面2个网址,教你如何压缩多文件,我上面的压缩只针对单个文件

http://www.cnblogs.com/zhoubin689/archive/2008/01/03/1025131.html

http://blog.csdn.net/chinull/archive/2009/03/03/3953681.aspx

原文地址:https://www.cnblogs.com/sunyaling/p/1434602.html