c# 解压zip 进度_C# 解压文件/压缩文件 示例源码(带进度条)

【实例简介】压缩文件为7z格式

【实例截图】

【核心代码】

using System;

using System.IO;

namespace ProgressBarSolution

{

class Program

{

static void Main(string[] args)

{

string filePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory,"files", "book.pdf");

string zipFilePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory,"files", "book.7z");

try

{

Console.WriteLine();

Console.WriteLine("正在压缩文件...");

ProgressBar progressBar = new ProgressBar(Console.CursorLeft, Console.CursorTop, 50, ProgressBarType.Character);

GZipHelper.Compress(filePath, progressBar.Dispaly);

Console.WriteLine();

Console.WriteLine();

Console.WriteLine("正在解压文件...");

prog

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用 .NET Framework 中的 System.IO.Compression 命名空间来解压文件,同时使用 System.ComponentModel.BackgroundWorker 类来实现解压进度的显示。以下是一个示例代码: ```csharp using System; using System.IO; using System.IO.Compression; using System.ComponentModel; public class Unzipper { private BackgroundWorker worker; public Unzipper(BackgroundWorker worker) { this.worker = worker; } public void Unzip(string zipFilePath, string extractPath) { using (ZipArchive archive = ZipFile.OpenRead(zipFilePath)) { int totalEntries = archive.Entries.Count; int currentEntry = 0; foreach (ZipArchiveEntry entry in archive.Entries) { string entryPath = Path.Combine(extractPath, entry.FullName); worker.ReportProgress((int)((float)currentEntry / totalEntries * 100), entryPath); currentEntry++; if (entry.Name == "") { Directory.CreateDirectory(entryPath); } else { entry.ExtractToFile(entryPath, true); } } } } } ``` 在此示例中,Unzipper 类的 Unzip 方法接受两个参数:压缩文件的路径和解压路径。BackgroundWorker 参数用于报告解压进度。在 Unzip 方法中,我们首先使用 ZipFile.OpenRead 方法打开 zip 文件。然后,我们遍历压缩文件中的每个条目,并为每个条目报告解压进度。最后,我们使用 ZipArchiveEntry.ExtractToFile 方法将条目解压缩到指定的目录。 你可以在 BackgroundWorker 的 ProgressChanged 事件处理程序中来更新 UI,以显示解压进度和当前正在解压缩的文件名。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值