这个功能没什么可介绍的,大家都懂,直接上代码了。。

实现功能:

选择多个文件压缩成ZIP文件和解压ZIP文件

开发环境:

开发工具: Visual Studio 2013

.NET Framework版本:4.5

实现代码:

//需要添加ICSharpCode.SharpZipLib.Zip.dll到自己项目private void btnCompressFile_Click(object sender, EventArgs e){listFiles.Items.Clear();OpenFileDialog ofd = new OpenFileDialog();ofd.Multiselect = true;if (ofd.ShowDialog() == DialogResult.OK){listFiles.Items.AddRange(ofd.FileNames);}}private void btnCompress_Click(object sender, EventArgs e){if (listFiles.Items.Count == 0){MessageBox.Show("请先选择需要压缩的文件");return;}SaveFileDialog sfd = new SaveFileDialog();sfd.Filter = "压缩文件|*.zip";if (sfd.ShowDialog() == DialogResult.OK){string[] files = new string[listFiles.Items.Count];for (int i = 0; i < listFiles.Items.Count; i++){files[i] = listFiles.Items[i].ToString();}dynamic result;using (ZipOutputStream outStream = new ZipOutputStream(File.Create(sfd.FileName))){result = Zip(files, outStream, "123");}MessageBox.Show(result.msg);}}private void btnUnCompressFile_Click(object sender, EventArgs e){FolderBrowserDialog fbd = new FolderBrowserDialog();fbd.ShowNewFolderButton = true;if (fbd.ShowDialog() == DialogResult.OK){txtOutFile.Text = fbd.SelectedPath;}}private void btnUnCompress_Click(object sender, EventArgs e){if (string.IsNullOrWhiteSpace(txtOutFile.Text)){MessageBox.Show("请先选择解压路径");return;}OpenFileDialog ofd = new OpenFileDialog();ofd.Filter = "压缩文件|*.zip";if (ofd.ShowDialog() == DialogResult.OK){dynamic result = UnZip(ofd.FileName, txtOutFile.Text,"123");MessageBox.Show(result.msg);}}public dynamic Zip(string[] files, ZipOutputStream outStream, string pwd){try{for (int i = 0; i < files.Length; i++){if (!File.Exists(files[i])){throw new Exception("文件不存在");}using (FileStream fs = File.OpenRead(files[i])){byte[] buffer = new byte[fs.Length];fs.Read(buffer, 0, buffer.Length);if (!string.IsNullOrWhiteSpace(pwd)){outStream.Password = pwd;}ZipEntry ZipEntry = new ZipEntry(Path.GetFileName(files[i]));outStream.PutNextEntry(ZipEntry);outStream.Write(buffer, 0, buffer.Length);}}return new { result = true, msg = "压缩成功" };}catch (Exception ex){return new { result = true, msg = "压缩失败:" + ex.Message };}}public dynamic UnZip(string zipFile, string outPath, string pwd){try{if (!Directory.Exists(outPath)){Directory.CreateDirectory(outPath);}using (ZipInputStream zipInputStream = new ZipInputStream(File.OpenRead(zipFile))){if (!string.IsNullOrWhiteSpace(pwd)){zipInputStream.Password = pwd;}ZipEntry theEntry;while ((theEntry = zipInputStream.GetNextEntry()) != null){using (FileStream streamWriter = File.Create(outPath + "\\" + theEntry.Name)){byte[] data = new byte[1024 * 1024];int dataLength = 0;while ((dataLength = zipInputStream.Read(data, 0, data.Length)) > 0){streamWriter.Write(data, 0, dataLength);}}}}return new { result = true, msg = "解压成功" };}catch (Exception ex){return new { result = true, msg = "解压失败:" + ex.Message };}}

实现效果:

若需要源码,请私信 文件压缩与解压 获取;

由简入繁,拿来即用

更多精彩,请关注微信公众号:

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

  1. c# 文件压缩、解压及下载

    C#打包文件夹成zip格式(包括文件夹和子文件夹下的所有文件) C# 文件压缩与解压(ZIP格式) asp.net实现文件夹及文件压缩,并实现下载 转载于:https://www.cnblogs.co ...

  2. 基于哈夫曼编码完成的文件压缩及解压

    这几天在较为认真的研究基于哈夫曼编码的文件压缩及解压,费了点时间,在这分享一下: 这里用链式结构,非顺序表结构: 文件压缩: 1.获取文件信息(这里采用TXT格式文本): 2.压缩文件: 3.写配置文 ...

  3. 7z001怎么解压在安卓手机上面_安卓zip文件压缩RAR解压手机下载-安卓zip文件压缩RAR解压v1.0最新版下载...

    安卓zip文件压缩RAR解压是一款非常好用的手机压缩解压缩神器,在安卓zip文件压缩RAR解压上我们可以看到很多的实用的功能,软件可以帮助我们更好的处理我们手机中的文件,感兴趣的朋友赶紧下载安卓zip ...

  4. java 操作Zip文件(压缩、解压、加密)

    java 操作Zip文件(压缩.解压.加密) 依赖:点击下载 package com.zxl.test;import net.lingala.zip4j.model.ZipParameters; im ...

  5. 7z文件压缩、解压 (7zTool.exe)

    工具下载 压缩为7z: 调用zip()函数 7z解压缩: 调用unzip()函数 using System; using System.Collections.Generic; using Syste ...

  6. linux把一个大文件压缩,linux大文件压缩及解压需要注意问题

    注意: 大文件压缩及解压需要在后台进行,如果要查看解压详情,就要输出重定向. 远程服务器,要防止网络断开连接,导致终端关闭,此时终端断开,即使后台进行,解压以及压缩也会停止.解决方法:在指令前加noh ...

  7. cordova 安卓文件多选_安卓zip文件压缩RAR解压软件下载-安卓zip文件压缩RAR解压下载v3.0.4安卓版...

    安卓zip文件压缩RAR解压是一款非常好用的手机压缩解压缩神器,在安卓zip文件压缩RAR解压上我们可以看到很多的实用的功能,软件可以帮助我们更好的处理我们手机中的文件,感兴趣的朋友赶紧下载安卓zip ...

  8. 文件压缩、解压 (ZipTool.exe)

     工具下载 压缩: 调用zip()函数. 解压缩:调用unzip()函数 添加ZipTool类至应用中,即可实现文件压缩.解压逻辑. using System; using System.Collec ...

  9. Java实现文件压缩与解压[zip格式,gzip格式]

    原文:http://www.cnblogs.com/visec479/p/4112881.html#3069573 Java实现ZIP的解压与压缩功能基本都是使用了Java的多肽和递归技术,可以对单个 ...

  10. 解压ubi文件_Linux 文件压缩与解压相关

    tar [-cxtzjvfpPN] 文件与目录 .... 参数: -c :建立一个压缩文件的参数指令 -x :解开一个压缩文件的参数指令 -t :查看压缩文件里面的文件 特别注意: c/x/t 同时只 ...

最新文章

  1. HttpModule与HttpHandler详解
  2. Codeforces Round #520 (Div. 2)
  3. Hibernate悲观锁/乐观锁
  4. 设计模式 - 创建型模式_ 单例模式 Singleton Pattern
  5. Javaweb学习路线(自学规划)
  6. Hive的数据模型-外部表
  7. 今天学习了无序列表和有序列表和使用HTML5创建表格
  8. NSSM的下载与使用
  9. 封玩家IP和机器码以及解开被封的教程
  10. c# 免费版pdf转word尝试
  11. 群晖NAS、硬盘及路由器选购及组网,打造家庭资源共享环境
  12. 【ACWing】1402. 星空之夜
  13. docker network create
  14. 如何激活优动漫PAINT,获取优动漫PAINT序列号
  15. 计算机怎么设置ie连接网络连接不上去,有网络连接,但浏览器不能上网怎么办?电脑高手教你怎么解决...
  16. NPOJ 1065 喵星人吃土豆
  17. 把鸡蛋放到一个篮子里,然后看好你的篮子
  18. IDC:微软Windows将于2007年失去统治地位
  19. 喝干红葡萄酒的十大好处
  20. CSDN Markdown编辑器将公式取消斜体的方法

热门文章

  1. node.js接入微信公众号开发
  2. POI 导出Excel文件 设置指定列格式为文本格式
  3. 对事件流的小故事理解
  4. 一洗大增大膏是真的吗_久久享欲增大膏跟一洗大结合真的有那么神奇吗?
  5. BGP基本配置和路由聚合
  6. 浏览器打开是360导航页面解决方法
  7. 3每个 Yocto 跟踪工具的基本用法(附示例)
  8. kc705进行DDR3扩容
  9. 从fig文件导出数据【MATLAB】
  10. bat文件建文件夹时乱码及失败问题