【问题标题】:DotNetZip Get Progress of Entry extractionDotNetZip 获取条目提取进度
【发布时间】:2014-09-08 12:48:15
【问题描述】:

有人知道如何检查 zip 文件夹内的条目提取进度吗?在我的情况下,用户可以选择要提取的文件夹,我想制作 2 个进度条,一个用于整个过程(步骤是完成提取所选目录之一),第二个用于从子文件夹中提取。我知道整个 zip 有进展,但是当我只想提取一些内容时,或者我专注于 ZipEntry 的进展,而不是整个 zip 时怎么办。

【问题讨论】:

    标签: c# zip progress-bar dotnetzip


    【解决方案1】:

    我有一个保存过程,但它似乎反映了提取的处理。如果您更改以下内容以处理 ExtractProgress,它应该非常相似。

    这是我对 SaveProgress 事件的处理,我在保存 zip 文件时跟踪总进度和当前文件进度:

    private void _archive_SaveProgress(object sender, SaveProgressEventArgs e)
    {
        switch (e.EventType)
        {
            case ZipProgressEventType.Saving_BeforeWriteEntry:
                if (e.EntriesTotal > 0)
                {
                    // Update the view with the total percentage progress.
                    int totalPercentage = (e.EntriesSaved / e.EntriesTotal) * 100m;
                    View.SavingStatus(e.CurrentEntry.FileName, 0, totalPercentage);
                }
                break;
            case ZipProgressEventType.Saving_EntryBytesRead:
                int filePercentage = 0;
                if (e.BytesTransferred == 0)
                {
                    filePercentage = 0;
                }
                else
                {
                    filePercentage = (new decimal(e.BytesTransferred) / new decimal(e.TotalBytesToTransfer)) * 100m;
                }
    
                // Update the view with the current file percentage.
                View.SavingStatus("Archiving file " + e.CurrentEntry.FileName + "...", filePercentage, -1);
                break;
            case ZipProgressEventType.Saving_Completed:
                View.SavingStatus("Archive creation complete, saving data changes...", 100, 100);
                break;
        }
    }
    

    case 语句的第一部分是处理整个 zip 保存的进度,第二个 case 语句是处理当前文件。在这种情况下,调用 View.SavingStatus 会使用当前状态文本更新一个标签,并更新界面上的两个进度条。

    【讨论】:

    • 谢谢,会有用的;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多