C# 文件的压缩与解压缩

news/2024/10/20 11:46:13/

依赖:.NET Framework 4.5及以上,引用 - 添加引用 - 程序集
System.IO.Compression
System.IO.Compression.FileSystem
——————————————————————————————

针对文件夹的最简单的压缩与解压缩
1、目录必须存在
2、无法覆盖文件

ZipFile.CreateFromDirectory(文件夹目录, zip路径);//压缩文件夹
ZipFile.ExtractToDirectory(zip路径, 输出目录);//解压缩文件夹

——————————————————————————————
指定文件进行压缩,可进行覆盖
压缩

public static void 压缩文件(List<string> 所有文件, string 父目录, string 输出目录) {if (!Regex.IsMatch(父目录, @".*[/\\]$")) {//为了确认压缩目录内的相对路径父目录 += "\\";}using (FileStream fs = new FileStream(输出目录, FileMode.Create)) {using (ZipArchive ar = new ZipArchive(fs, ZipArchiveMode.Create)) {foreach (string file in 所有文件) {FileInfo info = new FileInfo(file);if (!new DirectoryInfo(父目录).FullName.StartsWith(info.Directory.FullName)) {throw new Exception("压缩文件必须处于指定的父目录下!");}ar.CreateEntryFromFile(info.FullName, info.FullName.Substring(父目录.Length));}}}
}

解压缩,文件夹不存在则创建,文件存在则覆盖

public static void 解压文件(string zipFile, string outPath) {if (!Regex.IsMatch(outPath, @".*[/\\]$")) {outPath += "\\";}using (FileStream fs = new FileStream(zipFile, FileMode.Open)) {using (ZipArchive zr = new ZipArchive(fs)) {foreach (var en in zr.Entries) {FileInfo path = new FileInfo(outPath + en.FullName);if (!path.Directory.Exists) {path.Directory.Create();}if (en.Name == "") {//是文件夹Directory.CreateDirectory(outPath + en.FullName);} else {en.ExtractToFile(outPath + en.FullName, true);}}}}
}

http://www.ppmy.cn/news/546986.html

相关文章

虚拟机解压缩命令

虚拟机解压缩命令 1、.tar 用 tar –xvf 解压 2、.gz 用 gzip -d或者gunzip 解压 3、.tar.gz和.tgz 用 tar –xzf 解压 4、.bz2 用 bzip2 -d或者用bunzip2 解压 5、.tar.bz2用tar –xjf 解压 6、.Z 用 uncompress 解压 7、.tar.Z 用tar –xZf 解压 8、.rar 用 unrar e解压 9、…

tar 打包压缩与解压缩

tar 命令用于对文件进行打包压缩或解压缩。 在Linux系统中&#xff0c;常见的压缩包文件格式有很多&#xff0c;其中主要使用的是 .tar 或 .tar.gz 或 .tar.bz2 的格式。 1、tar 命令的参数 -c 创建压缩文件 -x 解压缩文件 -t 查看压缩包内有哪些文件 -z 使用 Gzi…

windows自带的压缩/解压缩(zip/unzip)功能-Powershell 的应用之一

压缩文件经常碰到&#xff0c; 一般可以下载免费的unzip软件&#xff0c; 但是要么很多广告&#xff0c;要么用一段时间就要购买。 其实windows自动的Powershell 就可以做压缩和解压的。 Powershell 是微软用于计算机管理的一个工具&#xff0c;很多方面与CMD 类似&#xff0c…

golang zip压缩/解压缩用法

最近有个需求&#xff0c;需要写个脚本&#xff0c;但要编译为exe可执行文件&#xff0c;首先考虑python打包&#xff0c;奈何使用pyinstaller打包后&#xff0c;出现各种各样的运行错误&#xff0c;最后放弃了&#xff0c;改为golang重写。因为要用到创建和解压zip文件&#x…

C语言实现哈夫曼压缩与解压缩的实现以及读取哈夫曼编码 万文长书,绝对详细哦

哈夫曼压缩与解压缩的实现 开始之前&#xff0c;务必要看&#xff01;看了能更好的理解代码一、整体的布局二、模块功能实现1、压缩2、解压缩 三、尾记-主函数的详细介绍 开始之前&#xff0c;务必要看&#xff01;看了能更好的理解代码 为了伙伴们更好的理解我们这个代码的实…

ZLib 解压缩工具

官网&#xff1a; http://www.zlib.net/ 功能&#xff1a;压缩一段字节流&#xff0c;但是不包含任何文件信息。所以如果要编写压缩数据&#xff0c;还要自定义头部信息之类的&#xff0c;自己生成对应的文件结构 设计&#xff1a;CMake编译工具&#xff08;用于在windows中进行…

在解压缩某些文件时出现问题检查计算机上,rar文件解压缩失败解压末端出现错误的解决方法...

附件经常会是一系列的压缩文件,下载是默认文件名是一个随机数字。 因而下载完会出现压缩文件解压缩失败 解决方法:下载时重命名为带一定顺序的文件名,如文件1,文件2,文件3等 如何解决单个文件解压失败? 论坛中的许多资料都是使用RAR压缩的,上传到下载,在解压过程中可能…

解压缩文件常用命令——linux

解压缩文件常用命令——linux 解压缩文件命令1. 解压缩jar包&#xff08;1&#xff09;解压 jar&#xff08;2&#xff09;压缩 jar&#xff08;3&#xff09;部分参数说明 2.解压缩war包&#xff08;1&#xff09;解压 war&#xff08;2&#xff09;压缩 jar 3.解压缩tar包&am…