(C#)使用sharpcompress压缩解压文件(.rar,.zip,tar.bz2,.7z,.tar.gz)

news/2025/1/18 12:41:48/

sharpcompress安装方法

使用Nuget搜索sharpcompress,点击安装即可

1、.rar文件解压代码(不支持rar压缩)

using (Stream stream = File.OpenRead(@"C:\Code\sharpcompress.rar"))
{var reader = ReaderFactory.Open(stream);while (reader.MoveToNextEntry()){if (!reader.Entry.IsDirectory){Console.WriteLine(reader.Entry.Key);reader.WriteEntryToDirectory(@"C:\temp", new ExtractionOptions() { ExtractFullPath = true, Overwrite = true });}}
}

2、.zip文件压缩和解压代码

1).zip文件压缩代码

string filesPath = @"C:\Users\Administrator\source\repos\ConsoleApp1\ConsoleApp1";using (var zip  = File.OpenWrite("C:\\test.zip"))using (var zipWriter = WriterFactory.Open(zip, ArchiveType.Zip, CompressionType.Deflate)){//foreach (var filePath in filesList)//{zipWriter.WriteAll(filesPath, "*", SearchOption.AllDirectories);//}}

2).zip文件解压代码

var archive = ArchiveFactory.Open(@"C:\\test.zip");foreach (var entry in archive.Entries){if (!entry.IsDirectory){Console.WriteLine(entry.Key);entry.WriteToDirectory(@"C:\temp", new ExtractionOptions() { ExtractFullPath = true, Overwrite = true });}}

3、.7z文件解压代码(不支持.7z压缩)

var archive = ArchiveFactory.Open(@"F:\Python35-32.7z");foreach (var entry in archive.Entries){if (!entry.IsDirectory){Console.WriteLine(entry.Key);entry.WriteToDirectory(@"C:\temp", new ExtractionOptions() { ExtractFullPath = true, Overwrite = true });}}

4、.tar.gz文件压缩代码

string filesPath = @"C:\Users\Administrator\source\repos\ConsoleApp1\ConsoleApp1";using (var zip  = File.OpenWrite("C:\\test.tar.gz"))using (var zipWriter = WriterFactory.Open(zip, ArchiveType.Tar, CompressionType.GZip)){//foreach (var filePath in filesList)//{zipWriter.WriteAll(filesPath, "*", SearchOption.AllDirectories);//}}

5、.tar.bz2文件压缩代码

using (Stream stream = File.OpenWrite(tarbz2Path))
using (var writer = WriterFactory.Open(stream, ArchiveType.Tar, CompressionType.BZip2))
{writer.WriteAll(filesPath, "*", SearchOption.AllDirectories);
}


http://www.ppmy.cn/news/1260973.html

相关文章

(Note)Chromium浏览器插件

Chromium浏览器插件 1.TamperMonkey Home | Tampermonkey 2.GreasyFork Greasy Fork - 安全、实用的用户脚本大全

【Kubernetes学习之连接集群】利用 kubeconfig 或 secret Token 连接 k8s 集群

参考 通过kubeconfig文件生成证书,用curl访问Kubernetes API server_网络飞鸥的博客-CSDN博客k8s用ServiceAccount Token的方式访问apiserver_kubenetes api 访问token-CSDN博客k8s serviceaccount创建后没有生成对应的secret - SoulChild随笔记参考 | KubernetesK…

QT作业1

自由发挥登录窗口的应用场景&#xff0c;实现一个登录窗口界面 头文件代码&#xff1a; #ifndef MYWIDGET_H #define MYWIDGET_H#include <QWidget> #include <QIcon> #include <QLabel> //标签类 #include <QMovie> //动图类 #include <…

【Java系列】函数式接口编程

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

298_C++_【base64_64_to_bits函数】Base64是一种用于将二进制数据转换为ASCII字符的编码方式,通常用于在文本协议中传输二进制数据

1、 #include "include/base64.h" static const char base64digits[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";#define BAD -1

『TypeScript』深入理解变量声明、函数定义、类与接口及泛型

&#x1f4e3;读完这篇文章里你能收获到 了解TypeScript变量声明与类型注解掌握TypeScript函数与方法的使用掌握TypeScript类与接口的使用掌握TypeScript泛型的应用 文章目录 一、变量声明与类型注解1. 变量声明2. 类型注解3. 类型推断 二、函数与方法定义1. 函数定义2. 方法定…

Prometheus 配置文件和标签 Pmsql

1.Prometheus配置文件 Prometheus可以通过命令行或者配置文件的方式对服务进行配置。 命令行方式一般用于不可变的系统参数配置&#xff0c;例如存储位置、要保留在磁盘和内存中的数据量等&#xff1b;配置文件用于定义与数据动态获取相关的配置选项和文件等内容。命令行方式…

【SA8295P 源码分析】137 - 车载以太网协议学习总结(待更新......)

【SA8295P 源码分析】137 - 车载以太网协议学习总结 一、Ethernet 以太网介绍1.1 实效性:AVB(Audio Video Bridging)/ TSN(Time-Sensitive Networking)1.1.1 Synchronization:同步,协议(802.1AS)1.1.2 Latency:低延迟,协议(802.1Qav、802.1Qbu、802.1Qbv、802.1ch、…