C# 利用ICSharpCode.SharpZipLib实现在线压缩和解压缩

本文介绍了如何在C#中利用ICSharpCode.SharpZipLib库进行文件的BZIP2和GZIP压缩及解压缩。文章提供了单个文件和多个文件压缩解压缩的方法,并指出该库可用于创建带加密和注释的ZIP包。
摘要由CSDN通过智能技术生成

 

ICSharpCode.SharpZipLib提供了两个压缩算法的实现,分别是BZIP2(压缩时间长,压缩率高)和GZIP(压缩效率高,压缩率低)。

先定义一个枚举,用于程序标示是哪个压缩算法。

?
1
2
3
4
5
6
7
8
9
10
11
/// <summary>
/// 压缩枚举
/// </summary>
public enum ZipEnum
{
   //压缩时间长,压缩率高
   BZIP2,
 
   //压缩效率高,压缩率低
   GZIP
}

单个文件的压缩:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#region 制作压缩包(单个文件压缩)
/// <summary>
/// 制作压缩包(单个文件压缩)
/// </summary>
/// <param name="sourceFileName">原文件</param>
/// <param name="zipFileName">压缩文件</param>
/// <param name="zipEnum">压缩算法枚举</param>
/// <returns>压缩成功标志</returns>
public static bool ZipFile( string srcFileName, string zipFileName, ZipEnum zipEnum)
{
   bool flag = true ;
   try
   {
     switch (zipEnum)
     {
       case ZipEnum.BZIP2:
 
         FileStream inStream = File.OpenRead(srcFileName);
         FileStream outStream = File.Open(zipFileName, FileMode.Create);
 
         //参数true表示压缩完成后,inStream和outStream连接都释放
         BZip2.Compress(inStream, outStream, true , 4096);
 
         inStream.Close();
         outStream.Close();
 
 
         break ;
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值