当前位置: 首页 > article >正文

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

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.kler.cn/news/161305.html

相关文章:

  • Docker、Kubernetes、OCI、CRI-O、containerd、runc 之间的关系以及它们是如何一起工作的?
  • 5.9 Windows驱动开发:内核InlineHook挂钩技术
  • 移除静态库中多余的符号
  • Docker使用笔记
  • 详细解读python里的列表
  • 排序:直接选择排序
  • Elasticsearch:评估 RAG - 指标之旅
  • WebGL笔记:矩阵缩放的数学原理和实现
  • 【Flink on k8s】- 0 - Flink kubernetes operator 快速入门与实战
  • 【SQL开发实战技巧】系列(四十八):Oracle12C常用新特性☞多分区操作和管理
  • dtaidistance笔记:dtw_ndim (高维时间序列之间的DTW)
  • 嵌入式工程师校招经验与学习路线总结
  • 使用群晖Docker搭建HomeAssistant并实现异地公网访问家中智能设备
  • ES6与ES5的区别?
  • 排序:快速排序(hoare版本)
  • 分布式搜索引擎03
  • Docker 镜像构建的最佳做法
  • Rust国内sparse镜像源配置
  • 第十五届蓝桥杯模拟赛B组(第二期)C++
  • CAN总线协议编程实例
  • 前缀和例题:子矩阵的和AcWing796-Java版
  • Spark - 输出parqute文件
  • 漫谈Uniapp App热更新包-Jenkins CI/CD打包工具链的搭建
  • 【刷题日志】牛客 HJ73 计算日期到天数转换
  • Canvas鼠标画线
  • java字符串String类的常用方法
  • Swift 中 User Defaults 的读取和写入
  • 商家门店小程序怎么做?门店小程序的优势和好处
  • Docker 一些设置
  • zabbix配置snmp trap--使用snmptrapd和Bash接收器--图文教程