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
投稿

猜你喜欢

  • Java 实战项目之仓库管理系统的实现流程

    2021-10-05 09:14:07
  • mybatisplus使用xml的示例详解

    2021-08-21 18:19:27
  • SpringBoot Entity中枚举类型详细使用介绍

    2023-11-11 00:30:52
  • Java doGet, doPost方法和文件上传实例代码

    2023-01-19 03:24:19
  • Android 蓝牙连接 ESC/POS 热敏打印机打印实例(蓝牙连接篇)

    2021-12-02 10:21:18
  • java基础之NIO介绍及使用

    2022-06-07 11:30:14
  • 详解JAVA Spring 中的事件机制

    2022-01-13 05:26:33
  • Jmeter自定义函数base64加密实现过程解析

    2021-10-21 14:04:00
  • java简单实现数组中的逆序对

    2022-06-26 02:23:17
  • C#数值转换-显式数值转换表(参考)

    2023-05-26 22:26:15
  • 带着新人看java虚拟机01(推荐)

    2023-05-28 04:38:16
  • Spring Cloud 系列之服务调用 OpenFeign的实现

    2023-10-20 07:34:00
  • Android Compose Column列表不自动刷新问题

    2022-08-10 07:48:02
  • Java二分查找算法实例详解

    2022-07-09 14:33:55
  • Android手势识别器GestureDetector使用详解

    2022-01-16 14:25:17
  • 设计模式系列之组合模式及其在JDK和MyBatis源码中的运用详解

    2022-12-27 12:56:57
  • Android UI实现SlidingMenu侧滑菜单效果

    2021-12-08 16:03:34
  • java实现简单的webservice方式

    2023-11-25 03:59:58
  • java中的GC收集器详情

    2021-11-22 16:59:34
  • springcloud整合openfeign使用实例详解

    2022-10-05 08:51:52
  • asp之家 软件编程 m.aspxhome.com