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

}

相关推荐
戮漠summer几秒前
Missing Semester 计算机教育中缺失的一课 Lecture 01 Shell
开发语言·后端·scala
jinyishu_3 分钟前
C++ string使用方法
开发语言·c++
EW Frontier6 分钟前
三级跳突破864维动作空间——QMIX-Hierarchical多无人机协同通信方法全解析【附python代码】
开发语言·python·无人机·强化学习·通信资源分配
名字还没想好☜9 分钟前
Next.js 中间件实战:鉴权、重定向与 A/B 分流
开发语言·前端·javascript·中间件·react·next.js
广州灵眸科技有限公司26 分钟前
瑞芯微RV1126B开发板(EASY-EAI-PI2) INI文件操作
java·前端·javascript·网络·人工智能
乐观勇敢坚强的老彭26 分钟前
C++浮点数使用注意事项
开发语言·c++
wuyk55535 分钟前
38.什么是C语言?从语法到工程落地的工程师视角解读
c语言·开发语言·stm32·单片机·mcu·51单片机
库克克38 分钟前
【C++ 】内联函数
java·开发语言·c++
zh_xuan43 分钟前
java 虚拟线程
java·开发语言·虚拟线程
LibraJM1 小时前
一种适合程序员的 Agent 协作方式的实践
c#·copilot·agents