.NET中zip的压缩和解压——SharpCompress插件的使用
2016-06-06 12:36
495 查看
最近项目中要实现一个压缩和解压文件的功能,于是我就在github上搜索zip,然后看到SharpCompress这个开源插件用的人数很多,但是他的文档很久没有更新了API中的参数都对应不上了,但是这个插件是很好用的,只要注意一下他方法里面的参数顺序和使用就OK了!
1、使用的时候大家可以对照官方文档和我的代码对比着使用就OK了,用Nuget下载SharpCompress。现在最新的是0.10.5.2,之前的都是0.10.3.0。废话不多说上代码。
2、文件压缩代码
上面封装成了方法,返回文件流。下面的压缩方法不一样,是返回文件路径。
3、文件解压缩代码
4、参考网址
官方文档:http://sharpcompress.codeplex.com/wikipage?title=Composite%20API%20Examples&referringTitle=Documentation
中文参考文档:http://www.cnblogs.com/zhaozhan/archive/2012/05/30/2524952.html
5、给大家送福利的时间到了
1、使用的时候大家可以对照官方文档和我的代码对比着使用就OK了,用Nuget下载SharpCompress。现在最新的是0.10.5.2,之前的都是0.10.3.0。废话不多说上代码。
2、文件压缩代码
/// <summary> /// 将一系列文件压缩到指定ZIP文件 todo 下载文件大小为0,待修改! /// </summary> /// <param name="filePaths"></param> private MemoryStream CompressionZIP(List<string> filePaths) { var zipStream = new MemoryStream(); using (var zipWriter = WriterFactory.Open(zipStream, ArchiveType.Zip, CompressionType.BZip2)) { foreach (var filePath in filePaths) { zipWriter.Write(Path.GetFileName(filePath), filePath); //zipStream.Flush(); } } return zipStream; }
上面封装成了方法,返回文件流。下面的压缩方法不一样,是返回文件路径。
//指定要压缩的文件夹路径 var zipPath = exportPath + "/" + tableName + ".zip"; using (Stream zipStream = File.OpenWrite(zipPath)) using (var zipWriter = WriterFactory.Open(zipStream, ArchiveType.Zip, CompressionType.BZip2)) { zipWriter.WriteAll(savePath, "*", SearchOption.AllDirectories); }
3、文件解压缩代码
/// <summary> /// 解压缩Zip /// </summary> /// <param name="zipFileStream">ZIP文件流</param> /// <param name="savePath">解压后保存路径</param> private void UnZip(Stream zipFileStream, string savePath) { using (var archive = ArchiveFactory.Open(zipFileStream)) { foreach (var entry in archive.Entries) { if (!entry.IsDirectory) { entry.WriteToDirectory(savePath, ExtractOptions.ExtractFullPath | ExtractOptions.Overwrite); } } } }
4、参考网址
官方文档:http://sharpcompress.codeplex.com/wikipage?title=Composite%20API%20Examples&referringTitle=Documentation
中文参考文档:http://www.cnblogs.com/zhaozhan/archive/2012/05/30/2524952.html
5、给大家送福利的时间到了
相关文章推荐
- Python中zip()函数用法举例
- 如何在 Ubuntu Linux 中使用 RAR 文件
- zip 的压缩原理与实现
- C#调用Rar文件及获取Rar返回值的方法
- C#使用DeflateStream解压缩数据文件的方法
- C# 利用ICSharpCode.SharpZipLib实现在线压缩和解压缩
- 用vbs实现zip功能的脚本
- C#调用WinRar执行rar、zip压缩的方法
- C语言压缩文件和用MD5算法校验文件完整性的实例教程
- C#实现页面GZip或Deflate压缩的方法
- C#使用iCSharpcode进行文件压缩实现方法
- C#图片切割、图片压缩、缩略图生成代码汇总
- C#实现压缩HTML代码的方法
- Asp.net在线备份、压缩和修复Access数据库示例代码
- 使用UglifyJS合并/压缩JavaScript的方法
- 高性能WEB开发 JS、CSS的合并、压缩、缓存管理
- 脚本分析、压缩、混淆工具 JSA新版本发布,压缩效率提高大约10%
- 发布一个高效的JavaScript分析、压缩工具 JavaScript Analyser
- PHP实现图片压缩的两则实例