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 绝对值得一试。用起来还挺顺手的,代码也好维护。
34.09KB
文件大小:
评论区