剛發布了一個 .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);