SharpZipLib文件压缩示例(.NET)

文件压缩的首选工具之一就是.NET 的SharpZipLib。完全用 C#写的,跨平台、免费,功能也比较全。支持的格式不止有 ZIP 和 GZip,像 BZip2、Tar 甚至 7-Zip 都能搞定,挺省事。

用 SharpZipLib 压文件夹挺简单,像下面这段代码,调用CompressFolder就能把一个目录打包成 ZIP,还能保持原目录结构。压缩级别也能自定义,想快点就调低点,想压得狠点就设成 9。

public static void CompressFolder(string sourceFolderPath, string zipFilePath) {
  using (var zipOutputStream = new ZipOutputStream(File.Create(zipFilePath))) {
    zipOutputStream.SetLevel(9);
    foreach (var file in Directory.GetFiles(sourceFolderPath, "*", SearchOption.AllDirectories)) {
      var entryName = GetRelativePath(file, sourceFolderPath);
      AddFileToZip(zipOutputStream, file, entryName);
    }
    zipOutputStream.Finish();
  }
}

你只需要提前装好SharpZipLib。可以用 NuGet 装,也可以直接拖个SharpZipLib.dll进项目里引用。要注意一点,路径最好是用相对路径,方便打包时保持目录结构。

实际用的时候,还可以加点东西:比如异常、加密压缩、进度条显示之类的。功能是够用的,就看你怎么扩展啦。

如果你经常在做文件备份、日志归档或者传输前打包这些事,那 SharpZipLib 绝对值得一试。用起来还挺顺手的,代码也好维护。

7z 文件大小:34.09KB