91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

C# Zip壓縮進度條怎么添加

c#
小樊
84
2024-07-13 14:17:24
欄目: 編程語言

在C#中實現Zip壓縮進度條,可以通過使用System.IO.Compression.ZipArchive類來完成。以下是一個示例代碼,其中通過使用System.IO.Compression.ZipArchive類來壓縮文件,并通過Progress<T>類來實現進度條。

using System;
using System.IO;
using System.IO.Compression;
using System.Threading.Tasks;
using System.Net;
using System.Windows.Forms;

namespace ZipProgress
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private async void btnZip_Click(object sender, EventArgs e)
        {
            string zipPath = @"C:\Users\user\Desktop\test.zip";
            string[] filesToZip = new string[] { @"C:\Users\user\Desktop\file1.txt", @"C:\Users\user\Desktop\file2.txt" };

            progressBar1.Maximum = filesToZip.Length;
            IProgress<int> progress = new Progress<int>(value =>
            {
                progressBar1.Value = value;
            });

            await Task.Run(() =>
            {
                using (FileStream zipToOpen = new FileStream(zipPath, FileMode.Create))
                {
                    using (ZipArchive archive = new ZipArchive(zipToOpen, ZipArchiveMode.Update))
                    {
                        for (int i = 0; i < filesToZip.Length; i++)
                        {
                            string fileToAdd = filesToZip[i];
                            ZipArchiveEntry readmeEntry = archive.CreateEntry(Path.GetFileName(fileToAdd));
                            using (Stream entryStream = readmeEntry.Open())
                            using (Stream fileToCompress = File.OpenRead(fileToAdd))
                            {
                                fileToCompress.CopyTo(entryStream);
                            }

                            progress.Report(i + 1);
                        }
                    }
                }
            });

            MessageBox.Show("Zip compression complete!");
        }
    }
}

在上面的示例中,使用IProgress<int>接口來報告進度,并在壓縮每個文件時更新進度條的值。最后,使用MessageBox顯示壓縮完成的消息。

0
大名县| 海阳市| 贵南县| 武宣县| 长沙市| 西平县| 常熟市| 抚远县| 肥东县| 新源县| 云阳县| 平阳县| 禄丰县| 肥城市| 吴忠市| 项城市| 酉阳| 巩义市| 祁连县| 玉环县| 嵩明县| 卢龙县| 资溪县| 贵阳市| 苗栗县| 明星| 鸡东县| 兴山县| 兰坪| 密云县| 德令哈市| 会昌县| 团风县| 金坛市| 望都县| 屏边| 神木县| 揭东县| 赞皇县| 西贡区| 珠海市|