没有合适的资源?快使用搜索试试~ 我知道了~
C# 利用ICSharpCode.SharpZipLib实现在线压缩和解压缩
1星 9 下载量 184 浏览量
2020-09-02
13:48:00
上传
评论
收藏 55KB PDF 举报
温馨提示
试读
4页
本文主要主要介绍了利用ICSharpCode.SharpZipLib第三方的DLL库实现在线压缩和解压缩的功能,并做了相关的代码演示。
资源推荐
资源详情
资源评论
C# 利用利用ICSharpCode.SharpZipLib实现在线压缩和解压缩实现在线压缩和解压缩
本文主要主要介绍了利用ICSharpCode.SharpZipLib第三方的DLL库实现在线压缩和解压缩的功能,并做了相关
的代码演示。
压缩包制作也是很多项目中需要用到的功能。比如有大量的文件(假设有10000个)需要上传,1个1个的上传似乎不太靠谱
(靠,那得传到什么时候啊?),这时我们可以制作一个压缩包zip,直接传这个文件到服务器端,然后在服务器目录解压,
释放里面的文件。
这里我们选用ICSharpCode.SharpZipLib这个类库来实现我们的需求。
下载地址:http://icsharpcode.github.io/SharpZipLib/
该组件支持.NET 1.1, .NET 2.0 (3.5, 4.0), .NET CF 1.0, .NET CF 2.0
ICSharpCode.SharpZipLib提供了两个压缩算法的实现,分别是BZIP2(压缩时间长,压缩率高)和GZIP(压缩效率高,压缩
率低)。
先定义一个枚举,用于程序标示是哪个压缩算法。先定义一个枚举,用于程序标示是哪个压缩算法。
/// <summary>
/// 压缩枚举
/// </summary>
public enum ZipEnum
{
//压缩时间长,压缩率高
BZIP2,
//压缩效率高,压缩率低
GZIP
}
单个文件的压缩:单个文件的压缩:
#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;
case ZipEnum.GZIP:
FileStream srcFile = File.OpenRead(srcFileName);
GZipOutputStream zipFile = new GZipOutputStream(File.Open(zipFileName, FileMode.Create));
byte[] fileData = new byte[srcFile.Length];
srcFile.Read(fileData, 0, (int)srcFile.Length);
zipFile.Write(fileData, 0, fileData.Length);
srcFile.Close();
zipFile.Close();
break;
default: break;
资源评论
- fan8888882020-09-11请问我要一个PDF图有啥用???
weixin_38663701
- 粉丝: 3
- 资源: 954
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功