c# Zip压缩解压缩

public class ZipHelper

{

#region ZipFile 压缩文件

/// <summary>

/// 压缩

/// </summary>

/// <param name="strDirectory">要压缩的目录</param>

/// <param name="zipFile">压缩后的zip地址 绝对地址</param>

public static void ZipFileDirectory(string strDirectory, string zipFile)

{

if (File.Exists(zipFile))

{

File.Delete(zipFile);

}

System.IO.Compression.ZipFile.CreateFromDirectory(strDirectory, zipFile);//压缩

}

/// <summary>

/// 压缩文件列表

/// </summary>

/// <param name="files">要压缩的文件集合</param>

/// <param name="zipFile">压缩后的zip地址 绝对地址</param>

public static void ZipFiles(List<string> files, string zipFile)

{

if (File.Exists(zipFile))

{

File.Delete(zipFile);

}

using (ZipArchive archive = ZipFile.Open(zipFile, ZipArchiveMode.Create))

{

foreach (var item in files)

{

if (File.Exists(item))

{

archive.CreateEntryFromFile(item, Path.GetFileName(item));

}

}

}

}

#endregion

#region ZipFile 解压文件

/// <summary>

/// 解压缩

/// </summary>

/// <param name="zipFile">zip地址</param>

/// <param name="strDirectory">解压</param>

/// <param name="overWrite">是否覆盖已存在文件</param>

public static void UnZip(string zipFile, string strDirectory, bool overWrite = true)

{

using (var zip = System.IO.Compression.ZipFile.OpenRead(zipFile))

{

foreach (var item in zip.Entries)

{

var fileName = Path.Combine(strDirectory, item.FullName);

var fileDir = Path.GetDirectoryName(fileName);

if (!Directory.Exists(fileDir))

{

Directory.CreateDirectory(fileDir);

}

try

{

item.ExtractToFile(fileName, overWrite);

}

catch { }

}

}

}

#endregion

}

相关推荐
带刺的坐椅6 分钟前
SolonCode v0.0.20 发布 - 编程智能体(新增子代理和浏览器能力)
java·ai·agent·solon·solon-ai·claude-code·openclaw
会员源码网1 小时前
数字格式化陷阱:如何优雅处理 NumberFormatException
java
孔明click332 小时前
Sa-Token v1.45.0 发布 🚀,正式支持 Spring Boot 4、新增 Jackson3/Snack4 插件适配
java·sa-token·开源·springboot·登录·权限认证
程序猿阿越2 小时前
Kafka4源码(二)创建Topic
java·后端·源码阅读
悟空码字2 小时前
Spring Boot 整合 MongoDB 最佳实践:CRUD、分页、事务、索引全覆盖
java·spring boot·后端
省长2 小时前
Sa-Token v1.45.0 发布 🚀,正式支持 Spring Boot 4、新增 Jackson3/Snack4 插件适配
java·后端·开源
NE_STOP3 小时前
MyBatis-动态sql与高级映射
java
后端AI实验室3 小时前
我把同一个需求分别交给初级程序员、高级程序员和AI,结果让我沉默了
java·ai
sTone873753 小时前
web后端开发概念: VO 和 PO
java·后端·架构
SimonKing4 小时前
JetBrains+Qoder变身Agentic 编码平台,媲美Cursor、Trae等AI编程平台
java·后端·程序员