C#使用SharpZipLib压缩解压文件

作者:springsnow 时间:2021-10-27 18:56:21 

一、介绍

SharpZipLib是一个完全由C#编写的ZIP,GZIP,Tar和BZIP2 Library,可以方便的支持这几种格式的压缩和解压缩。

https://github.com/icsharpcode/SharpZipLib 下载解压SharpZipLib ,将 ICSharpCode.SharpZipLib .dll 添加至项目引用中.

二、操作指南

1.1  创建zip文件,并添加文件:

using (ZipFile zip = ZipFile.Create(@"E:\test.zip"))
{
   zip.BeginUpdate();
   zip.Add(@"E:\文件1.txt");
   zip.Add(@"E:\文件2.txt");
   zip.CommitUpdate();
}

1.2 将文件夹压缩为文件

(new FastZip()).CreateZip(@"E:\test.zip", @"E:\test\", true, "");

最后一个参数是使用正则表达式表示的过滤文件规则。CreateZip方法有3个重载版本,其中有目录过滤参数、文件过滤参数及用于指定是否进行子目录递归的一个bool类型的参数。

1.3 将文件添加到已有zip文件中

using (ZipFile zip = new ZipFile(@"E:\test.zip"))
{
   zip.BeginUpdate();
   zip.Add(@"E:\test.doc");
   zip.CommitUpdate();
}

1.4 列出zip文件中文件

using (ZipFile zip = new ZipFile(@"E:\test.zip"))
{
   string list = string.Empty;
   foreach (ZipEntry entry in zip)
   {
       list += entry.Name + "\r\n";
   }
   MessageBox.Show(list);
}

1.5  删除zip文件中的一个文件

using (ZipFile zip = new ZipFile(@"E:\test.zip"))
{
   zip.BeginUpdate();
   zip.Delete(@"test.doc");
   zip.Delete(@"test22.txt");
   zip.CommitUpdate();
}

1.6 解压zip文件中文件到指定目录下

(new FastZip()).ExtractZip(@"E:\test.zip", @"E:\test\", "");

三、 常用类

ZipInputStream、GZipInputStream用于解压缩Deflate、GZip格式流,

ZipOutputStream、GZipOutputStream用于压缩Deflate、GZip格式流。

StreamUtil类包含了几个Stream处理辅助方法:

1) Copy(Stream, Stream, Byte[])用于从一个Stream对象中复制数据到另一Stream对象。有多个重写。

2) ReadFully(Stream, Byte [])用于从Stream对象中读取所有的byte数据。有多个重写。

来源:https://www.cnblogs.com/springsnow/p/9399292.html

标签:C#,SharpZipLib,压缩,解压,文件
0
投稿

猜你喜欢

  • 基于SpringBoot+Redis实现分布式锁

    2023-10-16 11:44:31
  • Spring MVC入门_动力节点Java学院整理

    2023-11-03 20:35:31
  • Java编写实现坦克大战小游戏

    2023-11-24 09:15:34
  • Java看完秒懂版熔断和降级的关系

    2023-11-06 01:12:13
  • Java的System.getProperty()方法获取大全

    2023-11-10 20:12:12
  • C#调用存储过程详解(带返回值、参数输入输出等)

    2023-12-06 01:06:35
  • Java标识接口的使用方法

    2021-12-24 02:54:14
  • java身份证合法性校验工具类实例代码

    2022-09-10 18:36:55
  • 详解Java数据结构和算法(有序数组和二分查找)

    2023-04-08 13:38:07
  • SpringBoot整合Shiro两种方式(总结)

    2021-09-08 21:28:24
  • Javassist用法详解

    2023-06-26 17:11:54
  • java实现上传图片并压缩图片大小功能

    2023-06-14 22:32:35
  • Eclipse下基于Java的OpenCV开发环境配置教程

    2022-01-30 21:02:54
  • 浅谈MyBatis 事务管理

    2022-03-22 16:17:11
  • Java编程用指定字符打印菱形实例

    2022-02-23 05:49:09
  • Java类加载初始化的过程及顺序

    2021-12-09 16:12:46
  • C#隐藏控制台键盘输入的方法

    2022-04-29 21:11:06
  • 浅谈SpringBoot资源初始化加载的几种方式

    2022-03-09 08:14:34
  • 详解springboot中使用异步的常用两种方式及其比较

    2021-06-16 17:43:29
  • 解决微服务中关于用户token处理到的坑

    2022-05-21 08:31:03
  • asp之家 软件编程 m.aspxhome.com