C# 使用原生 System.IO.Compression 实现 zip 的压缩与解压
zip 是一个非常常见的压缩包格式,本文主要用于说明如何使用代码 文件或文件夹压缩为 zip压缩包及其解压操作,
我们采用的是 微软官方的实现,所以也不需要安装第三方的组件包。
使用的时候记得 using System.IO.Compression;
/// <summary>
/// 将指定目录压缩为Zip文件
/// </summary>
/// <param name="folderPath">文件夹地址 D:/1/ </param>
/// <param name="zipPath">zip地址 D:/1.zip </param>
public static void CompressDirectoryZip(string folderPath, string zipPath)
{
DirectoryInfo directoryInfo = new(zipPath);
if (directoryInfo.Parent != null)
{
directoryInfo = directoryInfo.Parent;
}
if (!directoryInfo.Exists)
{
directoryInfo.Create();
}
ZipFile.CreateFromDirectory(folderPath, zipPath, CompressionLevel.Optimal, false);
}
其中 CompressionLevel 是个枚举,支持下面四种类型
枚举 | 值 | 注解 |
---|---|---|
Optimal | 压缩操作应以佳方式平衡压缩速度和输出大小。 | |
Fastest | 1 | 即使结果文件未可选择性地压缩,压缩操作也应尽快完成。 |
NoCompression | 2 | 该文件不应执行压缩。 |
SmallestSize | 3 | 压缩操作应尽可能小地创建输出,即使该操作需要更长的时间才能完成。 |
相关文章