02 C# 文件压缩与解压
2021-05-26 23:28
579 查看
一、使用System.IO.Compression.ZipFile进行文件压缩与解压
System.IO.Compression 命名空间包含以下类型来对文件和流进行压缩或解压缩。 还可以使用这些类型来读取和修改压缩文件的内容。System.IO.Compression.ZipFile可以使用NuGet下载安装。主要包含以下函数:
(1)创建 zip 存档,该存档包含指定目录的文件和目录。
public static void CreateFromDirectory (string sourceDirectoryName, string destinationArchiveFileName);
(2)将指定 zip 存档中的所有文件都解压缩到文件系统的一个目录下。
public static void ExtractToDirectory (string sourceArchiveFileName, string destinationDirectoryName);
(3)以指定的模式打开指定路径上的 zip 归档。
public static System.IO.Compression.ZipArchive Open (string archiveFileName, System.IO.Compression.ZipArchiveMode mode);
(4)打开在指定路径用于读取的 zip 存档。
public static System.IO.Compression.ZipArchive OpenRead (string archiveFileName);
使用中,发现当解压文件夹所在目录中包含与待解压文件中重复的文件时会报错。此时,可以先遍历待解压文件,删除解压文件夹所在目录中的重复文件,然后再解压,具体如下:
/// <summary> /// ZipFile: https://docs.microsoft.com/zh-cn/dotnet/api/system.io.compression.zipfile.extracttodirectory?view=net-5.0 /// 压缩与解压: https://docs.microsoft.com/zh-cn/dotnet/standard/io/how-to-compress-and-extract-files /// </summary> public static class ZipFile { /// <summary> /// 创建压缩文件 /// </summary> /// <param name="startPath"></param> /// <param name="zipPath"></param> public static void CreateFromDirectory(string startPath, string zipPath) { System.IO.Compression.ZipFile.CreateFromDirectory(startPath, zipPath); } /// <summary> /// 解压ZIP文件 /// </summary> /// <param name="zipPath">压缩文件路径</param> /// <param name="extractPath">解压文件夹路径</param> /// <param name="IsDeleteOldFile">是否删除已存在的指定的目录文件</param> public static void ExtractToDirectory(string zipPath, string extractPath, bool IsDeleteOldFile=false) { if (IsDeleteOldFile) { using (var archive = System.IO.Compression.ZipFile.OpenRead(zipPath)) { foreach (var entry in archive.Entries) { string filePath = $"{extractPath}\\{entry.FullName}"; if (File.Exists(filePath)) { File.Delete(filePath); } } } } System.IO.Compression.ZipFile.ExtractToDirectory(zipPath, extractPath); } }
相关文章推荐
- C# 文件压缩与解压(ZIP格式)
- C# 文件压缩与解压(ZIP格式)
- C# 文件压缩与解压(ZIP)基于 .Net Framework
- C# 文件压缩与解压(ZIP格式)
- C# 文件压缩与解压(ZIP格式)
- C# 文件压缩与解压
- c# 调用 WinRAR 实现文件压缩、文件解压,WinRAR命令行参数,不弹窗
- C# 文件压缩与解压(ZIP格式)
- C# 文件压缩与解压(ZIP格式)
- C# 文件压缩与解压(ZIP格式)
- C# 基于SharpZipLib 实现 文件压缩,以及解压
- C# WCF 02
- 学习笔记(02):C# 实战项目——制作仿QQ软件-设计申请账号窗体
- (转贴)C#中利用SharpZipLib进行压缩和解压
- 文件压缩与解压
- [C#学习笔记02]理解值和引用
- 利用C#调用WINRAR实现压缩与解压
- C#Windows窗体界面设计_攻击决策项目_02_设计窗体_03_设置窗体弹出退出顺序
- C# 文件解压
- C# GZip、Deflate 压缩解压算法函数