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

本文介绍了如何在.NET Core应用中使用sharpcompress库进行文件的压缩和解压操作,包括.zip、.tar.gz、.tar.bz2等格式,同时也提到了sharpcompress对.rar和.7z格式的不支持。
摘要由CSDN通过智能技术生成

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);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,这个问题我可以回答。在.NET Core(C#)中使用EPPlus.Core导出Excel文档,可以按照以下步骤进行: 1. 首先需要安装EPPlus.Core库,可以通过NuGet包管理器或者手动下载安装。 2. 在代码中引入EPPlus.Core库的命名空间,如下所示: ``` using OfficeOpenXml; using OfficeOpenXml.Style; ``` 3. 创建Excel文档,并设置表头和数据。可以参考以下示例代码: ``` var file = new FileInfo("example.xlsx"); using (var package = new ExcelPackage(file)) { var worksheet = package.Workbook.Worksheets.Add("Sheet1"); // 设置表头 worksheet.Cells[1, 1].Value = "列1"; worksheet.Cells[1, 2].Value = "列2"; worksheet.Cells[1, 3].Value = "列3"; // 设置数据 for (int i = 2; i <= 100; i++) { worksheet.Cells[i, 1].Value = i - 1; worksheet.Cells[i, 2].Value = "数据" + (i - 1); worksheet.Cells[i, 3].Value = DateTime.Now.AddDays(i - 1); } // 设置单元格样式 worksheet.Cells[1, 1, 1, 3].Style.Font.Bold = true; worksheet.Cells[1, 1, 1, 3].Style.Fill.PatternType = ExcelFillStyle.Solid; worksheet.Cells[1, 1, 1, 3].Style.Fill.BackgroundColor.SetColor(Color.LightGray); // 保存Excel文档 package.Save(); } ``` 4. 如果需要在导出Excel文档的过程中显示进度条,可以使用异步方法和进度报告器。参考以下示例代码: ``` var file = new FileInfo("example.xlsx"); using (var package = new ExcelPackage(file)) { var worksheet = package.Workbook.Worksheets.Add("Sheet1"); // 设置表头 worksheet.Cells[1, 1].Value = "列1"; worksheet.Cells[1, 2].Value = "列2"; worksheet.Cells[1, 3].Value = "列3"; // 设置数据 for (int i = 2; i <= 100; i++) { worksheet.Cells[i, 1].Value = i - 1; worksheet.Cells[i, 2].Value = "数据" + (i - 1); worksheet.Cells[i, 3].Value = DateTime.Now.AddDays(i - 1); // 报告进度 var progress = (double)(i - 1) / 99; progressReporter.Report(progress); } // 设置单元格样式 worksheet.Cells[1, 1, 1, 3].Style.Font.Bold = true; worksheet.Cells[1, 1, 1, 3].Style.Fill.PatternType = ExcelFillStyle.Solid; worksheet.Cells[1, 1, 1, 3].Style.Fill.BackgroundColor.SetColor(Color.LightGray); // 保存Excel文档 await package.SaveAsync(); } ``` 以上就是在.NET Core(C#)中使用EPPlus.Core导出Excel文档,并显示进度条的方法。希望能够对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值