依赖:.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);}}}}
}

C# 文件的压缩与解压缩相关推荐

  1. Linux命令(9)—— 文件的压缩与解压缩

    .gz..bz2..zip文件均可以在linux操作系统下进行解压缩和压缩 tar命令 适用于 .gz..bz2类型文件 tar命令有很多选项 选项 作用 -c 创建出你要打包的文件 -j 压缩或解压 ...

  2. Linux下文件的压缩、解压缩、打包以及提取

    文章目录 Linux下文件的压缩.解压缩.打包以及提取 一.单个文件的解压缩 1.压缩文件: 2.文件的压缩 3.压缩文件的查看: 4.文件的解压:gunzip [选项] 文件名 二.多个文件的打包和 ...

  3. 哈夫曼树实现文件的压缩与解压缩

    利用哈夫曼树实现文件的压缩与解压缩 压缩: 1.统计出文件中相同字符出现的次数 2.获取哈夫曼编码 次数作为权值构建哈夫曼树 3.重新编码,写回压缩文件 保存头文件: 源文件后缀 编码信息的行数 每个 ...

  4. 数据压缩及解压缩算法,多种文件的压缩与解压缩-java android

    > 数据压缩算法,文本压缩算法 几种压缩算法原理介绍- https://blog.csdn.net/clevercode/article/details/46691645 文本压缩算法的对比和选 ...

  5. 对rar文件的解压缩,对zip文件的压缩与解压缩

    一.对rar文件的解压缩 1.maven <dependency><groupId>com.github.junrar</groupId><artifactI ...

  6. Linux下文件的压缩与解压缩

    Linux下文件的压缩与解压缩与Windows环境下有较大的区别,在Windows下只需要安装类似Winrar工具就能解压缩大部分文件,而在Linux命令行下每一种文件都有不同的压缩和解压缩方法. 使 ...

  7. sudo mysql压缩备份解压操作_高效管理文件之压缩及解压缩 .bz2 文件

    对文件进行压缩,可以通过使用较少的字节对文件中的数据进行编码来显著地减小文件的大小,并且在跨网络的文件的备份和传送时很有用. 另一方面,解压文件意味着将文件中的数据恢复到初始状态.Linux 中有几个 ...

  8. 如何使用Python对文件进行压缩与解压缩

    前言 我们在日常工作中,除了会涉及到使用Python处理文本文件,有时候还会涉及对压缩文件的处理. 通常会涉及到的压缩文件格式有: •rar:Windows 环境下用的比较多的压缩,比较著名的GUI工 ...

  9. 算法系列之使用赫夫曼编码的实战应用【对文件进行压缩、解压缩】

    1.首先在准备一张图片 2.测试压缩效果 3.测试解压缩效果 将桌面a.jpg删除 4.源代码 package com.zsh.algorithm.tree;import java.io.*; imp ...

最新文章

  1. 肝货,详解 tkinter 图形化界面制作流程!
  2. 2015年度打榜之数据备份硬件
  3. cookie和session的讲解
  4. Hibernate各种主键生成策略与配置详解
  5. VScode中常用element语法
  6. 电影票房数据查询服务高性能与高可用实践
  7. linux ssh非交互脚本,sshpass-Linux命令之非交互SSH
  8. 可还行?这款手机首获德国红点设计大奖
  9. 2018年9月8日 笔试小结
  10. 华为慧通和华为区别_华为P30与华为P30 pro 的区别
  11. 在Flask程序中实现GitHub登录和GitHub资源交互
  12. 17-05-25模拟赛
  13. 从零编写linux0.11 - 第七章 完善终端
  14. 请启动windows零配置(wzc)服务
  15. win11更改电脑中文用户名
  16. QT:QSS自定义QLineEdit实例
  17. 智慧园区运行监控中心
  18. Java实现QQ邮箱登录,实现邮箱验证码三分钟失效,代码实现发送验证码和登录全过程思路。内附完整项目。
  19. 恒大研究院|中国最具发展潜力的100个城市
  20. VirtualBox虚拟机安装Macos报错No packages were eligible for install

热门文章

  1. 平安京服务器维护,阴阳师6月23日服务器维护更新内容一览
  2. 润乾报表改java路径_Mac 环境中部署报表
  3. C语言候老师,C语言的信息化教学
  4. 用Python里面的Xpath完成一个在线汇率转换器!
  5. 用matlab编写的游戏,用matlab编写的俄罗斯方块小游戏
  6. python k-近邻算法 案例实战 预测Pima 印度安人的糖尿病
  7. python拆分excel行_Python将一个Excel拆分为多个Excel
  8. 规则引擎easyRule详解
  9. tomcat下多个app 不同的图标_四张图带你了解Tomcat系统架构让面试官颤抖的Tomcat回答系列!...
  10. 山东大学暑期项目实训-基于信用评分卡算法模型的个人信用评级系统的设计与实现-第一周-1(6月28日)