【发布时间】:2015-12-16 22:11:52
【问题描述】:
我有以下代码适用于单个文件 zip,没有任何问题。但是当我从一个目录中压缩(创建)时,进度条会发疯。
在所选文件夹内,我可能还有另外 10 个子文件夹。
using (ZipFile zip = new ZipFile())
{
zip.CompressionLevel = Ionic.Zlib.CompressionLevel.BestCompression;
zip.SaveProgress += zipProgress;
zip.AddDirectory(folderPath);
zip.Save(tempPath);
}
private void zipProgress(object sender, SaveProgressEventArgs e)
{
if (e.EventType == ZipProgressEventType.Saving_EntryBytesRead)
this.progressbar1.Value = (int)((e.BytesTransferred * 100) / e.TotalBytesToTransfer);
else if (e.EventType == ZipProgressEventType.Saving_Completed)
this.progressbar1.Value = 100;
}
我确实意识到进度值不断前进和后退的事实是由于我正在压缩一个包含 10 个子文件夹的文件夹。
但是我想知道是否有任何方法可以正确显示文件夹压缩的进度条?
【问题讨论】:
-
查看 AddProgress 事件的文档:dotnetzip.herobo.com/DNZHelp/html/…。 SaveProgress 报告添加到 zip 中的每个条目的进度