刚发布了一个 .net压缩解压库,基于SharpZipLib开发 ,支持进度查看,支持路径保持与否。

CL.IO.Zip 是一个基于SharpZipLib的一个压缩和解压的类库,提供给用户在.net环境下使用(VB.NET,C#..等等)当前最新版本为:V1.1.0

github地址:https://github.com/Jarvin-Guan/CL.IO.Zip    标个星

目前版本:v1.1.0。

百度网盘下载地址:http://pan.baidu.com/s/1qWwZ0LI

由云梯工作室提供。欢迎各位自由下载源码,自由使用,2015-6-15。

CL.IO.Zip

CL.IO.Zip 是一个基于SharpZipLib的一个压缩和解压的类库,提供给用户在.net环境下使用(VB.NET,C#..等等)当前最新版本为:V1.1.0

做任何操作之前,请使用单例模式,获取ZipHandler对象。

ZipHandler handler = ZipHandler.GetInstance();

1.压缩

1.1压缩文件夹,并获取压缩进度。

Method:PackDirectory

public void PackDirectory(string strDirectory, string zipedFile, ProcessChange changedDG)

Demo

var fromDic="E:\ZipTest";\\需要压缩的文件夹路径

var toZip="E:\ZipFile.zip";\\生成压缩包的目标路径

handler.PackDirectory(fromDic, toZip, (num) => { Debug.WriteLine("pack num:" + num); });\\num为百分比,最大为100,可在此处写处理逻辑 

1.2添加文件到zip文件中。

Method:AddFile

public void AddFile(string filePath, string zipPath,string filePathInZip)

Demo

var filePath="E:\ReadyToAdd.txt";\\需要添加到压缩包的文件路径

var zipPath="E:\ZipFile.zip";\\压缩包文件路径

handler.AddFile(filePath, zipPath, @"123\" + Path.GetFileName(filePath));\\需要添加到压缩包的文件路径 

1.3添加文件夹到zip文件中(此函数支持是否保存文件路径的格式。)

Method:AddDirectory

public void AddDirectory(string dicPath,string zipPath,string dicPathInZip,ProcessChange changedDG)

Demo

var dicPath="E:\ReadyToAddDic";\\需要添加到压缩包的文件夹路径

var zipPath="E:\ZipFile.zip";\\压缩包文件路径

var dicPathInZip="ReadyToAddDic";\\需要压缩到压缩包内的相对路径,当前值指的是根目录的ReadyToAddDic

handler.IsKeepPath=true;\\保存原路径

handler.AddDirectory(dicPath, zipPath, dicPathInZip,(num) => { Debug.WriteLine("压缩进度:" + num); }); 

2.解压

2.1对压缩包进行解压。

Method:UnpackAll

 public void UnpackAll(string zipFilePath, string unzipPath, ProcessChange changedDG)

Demo

var fromZip="E:\ZipTest.zip";\\需要解压的压缩文件路径

var toDic="E:\ZipFile";\\解压到的文件夹路径

handler.UnpackAll(fromZip, toDic, (num) => { Debug.WriteLine("解压进度:" + num); }); 

2.2解压压缩包内的指定文件。

Method:UnpackFile

public void UnpackFile(string zipFilePath,string unzipPath,string filePathInZip)

Demo

var fromZip="E:\ZipFile.zip";

var toDic="E:\UnZipTest";

handler.UnpackFile(fromZip, toDic, @"models/db.js"); 

2.3解压压缩包内的指定文件夹。

Method:UnpackDirectory

public void UnpackDirectory(string zipFilePath, string unzipPath, string DicPathInZip)

Demo

var fromZip="E:\ZipFile.zip";\\压缩包文件路径

var toDic="E:\UnZipTest";

var dicPathInZip="node_modules"; 

handler.IsKeepPath=true;\\保存原路径

handler.UnpackDirectory(fromZip, toDic, dicPathInZip);

.NET 压缩解压库发布,支持进度查看的更多相关文章

  1. snappy压缩/解压库

    snappy snappy是由google开发的压缩/解压C++库,注重压缩速度,压缩后文件大小比其它算法大一些 snappy在64位x86并且是小端的cpu上性能最佳 在Intel(R) Core( ...

  2. linux查看文件夹大小,备份文件夹zip压缩解压

    linux查看文件夹大小,备份文件夹zip压缩解压 du -sh : 查看当前目录总共占的容量.而不单独列出各子项占用的容量 du -lh --max-depth=1 : 查看当前目录下一级子文件和子 ...

  3. Java压缩/解压.zip、.tar.gz、.tar.bz2(支持中文)

    本文介绍Java压缩/解压.zip..tar.gz..tar.bz2的方式. 对于zip文件:使用java.util.zip.ZipEntry 和 java.util.zip.ZipFile,通过设置 ...

  4. Linux压缩解压 tar.gz格式的文件.查看tomcat是否运行

    tar命令详解 -c: 建立压缩档案 -x:解压 -t:查看内容 -r:向压缩归档文件末尾追加文件 -u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用 ...

  5. .NET使用ICSharpCode.SharpZipLib压缩/解压文件

    SharpZipLib是国外开源加压解压库,可以方便的对文件进行加压/解压 1.下载ICSharpCode.SharpZipLib.dll,并复制到bin目录下 http://www.icsharpc ...

  6. Linux文件属性和压缩解压

    目 录 第1章 Linux系统文件的属性    1 1.1 命令ls    1 1.2 inode    2 1.3 文件属性    2 1.4 env命令    2 1.5 注意:    2 第2章 ...

  7. linux中tar及压缩解压命令用法

    把常用的tar解压命令总结下,当作备忘: tar 命令可以为Linux的文件和目录创建档案.利用 tar,可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向 档案中加入新的文件.t ...

  8. WebAPI性能优化之压缩解压

    有时候为了提升WebAPI的性能,减少响应时间,我们会使用压缩和解压,而现在大多数客户端浏览器都提供了内置的解压支持.在WebAPI请求的资源越大时,使用压缩对性能提升的效果越明显,而当请求的资源很小 ...

  9. linux命令:压缩解压命令

    压缩解压命令:gzip 命令名称:gzip 命令英文原意:GNU zip 命令所在路径:/bin/gzip 执行权限:所有用户 语法:gzip 选项  [文件] 功能描述:压缩文件 压缩后文件格式:g ...

随机推荐

  1. IE6中布局常见问题

    1.众所周知,每个IE的版本都有两种模式,怪异模式(混杂模式)和标准模式.下图附上针对IE的hack. 2.另外有一种引进css的方法,也可以作为调整网站hack的方法:<!—[if IE 6] ...

  2. Android 动态Tab分页效果实现

    当前项目使用的是TabHost+Activity进行分页,目前要做个报表功能,需要在一个Tab页内进行Activity的切换.比方说我有4个Tab页分别为Tab1,Tab2,Tab3,Tab4,现在的 ...

  3. 博弈论入门小结 分类: ACM TYPE 2014-08-31 10:15 73人阅读 评论(0) 收藏

    文章原地址:http://blog.csdn.net/zhangxiang0125/article/details/6174639 博弈论:是二人或多人在平等的对局中各自利用对方的策略变换自己的对抗策 ...

  4. 2-Highcharts 3D图之3D柱状图带可调试倾斜角度

    <!DOCTYPE> <html lang='en'> <head> <title>2-Highcharts 3D图之3D柱状图带可调试倾斜角度< ...

  5. CNAME

    CNAME指别名记录也被称为规范名字.这种记录允许您将多个名字映射到同一台计算机. 通常用于同时提供WWW和MAIL服务的计算机.例如,有一台计算机名为“host.mydomain.com”(A记录) ...

  6. .NET设计模式(9):桥接模式(Bridge Pattern)(转)

    概述 在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维度的变化”?如何利用面向对象的技术来使得该类型能够轻松的沿着多个方向进行变化,而又不引入额外的复杂度?这就 ...

  7. SQL Server 2008 R2评估期已过的解决办法

    SQL Server 2008 R2评估期已过的解决办法   发现问题 北美产品测试服每日随机任务没有刷新 每日随机任务是使用数据库作业定期执行操作,重置玩家随机任务项 排查问题  www.2cto. ...

  8. 你用什么工具开发JavaScript?

    Cloud9的CFO曾经在LinkedIn上面发起一个调查,原标题为:What tools do you use for Node.js development?,回贴者甚多. 目测很多人都使用VIM ...

  9. 编写单例的 dojo class

    define([ "dojo/_base/declare" ],function( declare ){ var TimeChartService = declare(" ...

  10. mysql5日期类型datetime查询范围值

    1.DATE_FORMAT函数 SELECT a.create_time FROM account_log a WHERE a.create_time >= DATE_FORMAT('2014- ...