首页 > 编程语言 >C#利用自带的ZipFile压缩和解压zip文件,超级简单

C#利用自带的ZipFile压缩和解压zip文件,超级简单

时间:2023-12-18 22:48:27浏览次数:49  
标签:解压 文件 zip C# ZipFile 压缩文件 var

C#利用自带的ZipFile压缩和解压zip文件,超级简单

C#利用自带的ZipFile压缩和解压zip文件,超级简单

翔星 翔星 有10年+工作经验,高级软件工程师,可以解决各种问题   你经常看 TA 的内容

ZipFile类是.NET Framework 4.5发布的一个C#压缩文件和解压zip文件的一个类库,它支持.NET Framework 4.5以上版本,包括.NET Core1.0和.NET5以上版本。.NET Core以上版本使用时它时需要引用包System.IO.Compression.ZipFile。本文将介绍怎么使用ZipFile。

一、环境准备

新建一个.net7项目,并添加Nuget包System.IO.Compression.ZipFile,可以手动添加和使用命令添加

Install-Package System.IO.Compression.ZipFile

二、使用ZipFile

zipfile很简单,主要方法有解压zip文件、读取zip文件和压缩文件。方法如下:

//解压文件var zipPath = Directory.GetCurrentDirectory() + "/wwwroot/zippath/filename.zip";var newPath= Directory.GetCurrentDirectory() + "/wwwroot/newpath";ZipFile.ExtractToDirectory(newPath, zipPath, Encoding.UTF8, true); //压缩文件var filePath = Directory.GetCurrentDirectory() + "/wwwroot/filepath";var zipPath2 = Directory.GetCurrentDirectory() + "/wwwroot/zippath/filename2.zip";ZipFile.CreateFromDirectory(filePath, zipPath2); //读取zip压缩文件里的文件var filelist= ZipFile.OpenRead(zipPath).Entries.Select(s => s.Name).ToList();

代码很简单,每个功能点只需要一行代码。使用官方的组件好处是简单,支持维护,缺点是功能比较单一。另外zipfile的这些方法有重载,感兴趣可以查阅官网。

 

参考:微软官方文档


 

 

 

支持小薇

 

福利

 

关注公众号:DotNet开发跳槽❀觉得不错,请点个在看呀

标签:解压,文件,zip,C#,ZipFile,压缩文件,var
From: https://www.cnblogs.com/sexintercourse/p/17912532.html

相关文章

  • c/c++中typedef定义结构体内成员赋初值
    写数据结构作业时遇到的问题:需要给typedef定义的结构体中的成员数组赋初值。如下:写数据结构作业时遇到的问题:需要给typedef定义的结构体中的成员数组赋初值。如下:typedefstruct{Node*nodes[maxsize];intfront,rear;}Queue;赋值方法如下:Queuenodes={{0},1,0};......
  • 【沁恒 CH58x 应用】BLE相关知识基础
    大纲:1.什么是ble,ble与传统蓝牙的区别,ble与蓝牙4.0的区别2.ble的基本概念:协议层(协议框架)、服务(Service)、特征(Characteristic)。什么是配对(pair)、通知(notify)。 介绍低功耗蓝牙1.什么是低功耗蓝牙?图1BLE介绍低功耗蓝牙,简称BLE,是蓝牙的一种省电变体。BLE的主要应......
  • centos 安装 x11
    centos编译安装x11需要的依赖安装xtrans下载地址进入解压目录:./configuremake&&makeinstall配置路径:exportPKG_CONFIG_PATH=/usr/local/share/pkgconfig:$PKG_CONFIG_PATH安装x11下载地址./configuremake&&makeinstallexportPKG_CONFIG_PATH=/usr/loc......
  • JavaScript 中 let、var 和 const 的区别及使用建议
    前言JavaScript中的let、var和const是三种不同的变量声明方式。虽然它们都可以用来声明变量,但它们之间有很大的区别。在本篇文章中,我们将深入探讨这三种变量声明方式的区别以及它们在实际开发中的应用。正文内容一、let的用法let是ES6中新增的变量声明方式,它的作用域......
  • C# 六种方式实现精确计时
    C#六种方式实现精确计时翔星有10年+工作经验,高级软件工程师,可以解决各种问题​关注 你经常看TA的内容根据综合网上的一些文章,精确计时主要有以下几种方式1调用WINAPI中的GetTickCount[DllImport("kernel32")]staticexternuintGetTick......
  • PyCharm中New Directory 和 New Python Package的区别
    如题,这是一个很简单也很基础的问题,先看不同操作的结果有什么不同结果1:项目下出现了一个空“文件夹” 结果2:项目下多了一个“PythonPackage”,该package下包含了一个“__init__.py”文件,该py文件是空的如果把该py文件删掉后,package也就变成了directory  所以什么是__in......
  • [ABC312C] Invisible Hand
    其他题解都是二分,这里介绍一种\(O(n+m)\)的线性写法。我们尝试考虑在\(x\)为和值时会出现答案?很显然,对于任意\(1\leqi\leqn\)和\(1\leqj\leqm\),\(x\)只可能等于\(a_i\)或\(a_i+1\)或\(b_i\)或\(b_i+1\)。即\(x\)为这\(2\times(n+m)\)种情况中的一......
  • 查看mvn版本:cannot execute binary file
    一、现象二、原因网络资料上大部分的原因是因为jdk不是46位导致失败。其实我这边的原因也查不多,目前使用的是MacM2芯片的电脑但是还安装之前的jdk版本,将其替换为macosarm版本即可。三、操作JDK下载官网下载、解压并更新环境变量四、修复......
  • 不容错过的 13 个顶级 C++ 程序库
    不容错过的13个顶级C++程序库Incredibuild​已认证账号​关注 135人赞同了该文章关于C++,不论是其长达40年的发展历史,或者C++是高级还是低级编程语言的争论等等,这些内容都已老生常谈。如果你对C++库有所研究,不用我多说,大家也都心中......
  • 面试常考:C#用两个线程交替打印1-100的五种方法
    面试常考:C#用两个线程交替打印1-100的五种方法翔星有10年+工作经验,高级软件工程师,可以解决各种问题​关注 你经常看TA的内容"C#用两个线程交替打印1-100的五种方法"是.NET工程师面试多线程常考的试题之一,主要考察对C#语法和对多线程的熟悉程......