c#文件压缩上传服务器,C# 利用ICSharpCode.SharpZipLib实现在线压缩和解压缩

压缩包制作也是很多项目中需要用到的功能。比如有大量的文件(假设有10000个)需要上传,1个1个的上传似乎不太靠谱(靠,那得传到什么时候啊?),这时我们可以制作一个压缩包zip,直接传这个文件到服务器端,然后在服务器目录解压,释放里面的文件。

这里我们选用ICSharpCode.SharpZipLib这个类库来实现我们的需求。

该组件支持.NET 1.1, .NET 2.0 (3.5, 4.0), .NET CF 1.0, .NET CF 2.0

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

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

///

/// 压缩枚举

///

public enum ZipEnum

{

//压缩时间长,压缩率高

BZIP2,

//压缩效率高,压缩率低

GZIP

}

单个文件的压缩:

#region 制作压缩包(单个文件压缩)

///

/// 制作压缩包(单个文件压缩)

///

/// 原文件

/// 压缩文件

/// 压缩算法枚举

/// 压缩成功标志

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();

bre

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值