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

}

相关推荐
用户3126874877203 分钟前
Java 对象内存布局:压缩指针、对齐填充与 JOL 实测
java
东华果汁哥19 分钟前
【Spring AI 实战】从零开始调用大模型接口,构建 Java AI 应用
java·人工智能·spring
“AI国潮设计-小江”43 分钟前
【AIGC实战】Python+SDXL打造“潮汕英歌舞IP”万能立牌插件,批量生成“发财元宝蛋糕”视觉营销方案(附源码)
开发语言·人工智能·python·prompt·aigc
Song_RsHt1 小时前
Redis 与微服务,什么场景下无可替代
java·redis·后端·学习·微服务
学长毕设1 小时前
基于SpringBoot的建筑材料管理系统-附源码
java·spring boot·后端
lhbweilai1 小时前
分析FreeRTOS内核对象API的源码实现(八)
c语言·开发语言·stm32·单片机
努力努力再努力wz1 小时前
【C++高阶系列】C++20 协程底层原理:函数为什么能暂停?从状态机到 Task,彻底串起挂起、恢复与协程调度
开发语言·c++·c++20·1024程序员节
摸爬滚打的小李2 小时前
关于 Arthas
java·后端
咩咩啃树皮2 小时前
JavaScript 中 this 指向为什么总在变?
开发语言·前端·javascript
程序员清风2 小时前
算法题中的边界条件、测试与调试
开发语言·算法·kotlin