如何获得ZipFile.Read()的进度

时间:2014-12-25 05:10:24

标签: c# dotnetzip

我正在使用此代码;

using (ZipFile zip = ZipFile.Read(FileName))
{
    zip.ExtractProgress += ExtractProgressHandler;    
    zip.ReadProgress += ReadProgressHandler;
    zip.ExtractAll(AppDomain.CurrentDomain.BaseDirectory + "\\Library\\" + zip.Comment,ExtractExistingFileAction.OverwriteSilently);               
}

但ReadProgress事件永远不会发生。我想我需要在使用ZipFile.Read()之前添加事件处理程序。但我不知道该怎么做。

1 个答案:

答案 0 :(得分:4)

您可以调用带有ReadOptions的重载ZipFile.Read。您可以在ReadOptions中指定事件处理程序。

ReadOptions myReadOptions = new ReadOptions { ReadProgress = ExtractProgressHandler };
using (ZipFile zip = ZipFile.Read(FileName, myReadOptions))
{
    zip.ExtractProgress += ExtractProgressHandler;    
    zip.ExtractAll(AppDomain.CurrentDomain.BaseDirectory + "\\Library\\" + zip.Comment,ExtractExistingFileAction.OverwriteSilently);               
}

注意:我没有对其进行测试,代码按原样提供。