//引用Ionic.Zip.dll组件
using Ionic.Zip;
/// <summary>
/// 加压文件
/// </summary>
/// <param name="listPath">待加压各文件的路径</param>
/// <param name="savePath">加压路径</param>
public void CompressFile(List<string> testPaths, string savePath)
{
var coding = System.Text.Encoding.GetEncoding("gb2312");
ZipFile zf = new ZipFile(coding);
zf.Password = "压缩包密码";
zf.CompressionLevel = Ionic.Zlib.CompressionLevel.Level9;
foreach (var testPath in testPaths)
{
if (!File.Exists(testPath))
continue;
zf.AddFile(testPath,".");
}
zf.Save(savePath);
zf.Dispose();
}
/// <summary>
/// 解压文件
/// </summary>
/// <param name="filePath">压缩文件路径</param>
/// <param name="extractPath">解压目录</param>
public void DeCompressFile(string filePath, string testPath)
{
if (!Directory.Exists(testPath))
Directory.CreateDirectory(testPath);
var coding = System.Text.Encoding.GetEncoding("gb2312");
ZipFile zf = new ZipFile(filePath, coding);
zf.Password = "压缩包密码";
zf.ExtractAll(testPath);
zf.Dispose();
}
/// <summary>
/// 分卷压缩
/// </summary>
/// <param name="listPath"></param>
/// <param name="savePath"></param>
/// <param name="password"></param>
/// <param name="segmentSize"></param>
public void MultiPartarChiveCompress(string SourcePath, string savePath,string password, int fileSize)
{
ZipFile zip = new ZipFile(Encoding.GetEncoding("utf-8"));
if (!string.IsNullOrEmpty(password))
zip.Password = password;
zip.MaxOutputSegmentSize = fileSize;//fileSize 被压缩的文件大小
zip.UseZip64WhenSaving = Zip64Option.Always;
zip.BufferSize = 1024;
zip.CaseSensitiveRetrieval = true;//是否区分大小写
zip.CompressionLevel = Ionic.Zlib.CompressionLevel.BestCompression;//压缩等级,枚举值
zip.AddFile(SourcePath, ".");
zip.Save(savePath);
zip.Dispose();
}
.NET利用Ionic.Zip.dll进行文件压缩解压
最新推荐文章于 2025-05-03 14:14:41 发布