日期:2014-05-17  浏览次数:21086 次

解压缩和进度条同步显示
使用sharpziplib.dll动态库解压zip文件时候,如何在解压缩的时候,使进度条同步显示。。

我现在想在压缩文件解压之前获取文件实际大小,但是不知道怎么实现,求各位大牛指点。。。

------解决方案--------------------
文件字节:var file = new FileInfo(zipPath).Length;
显示进度条,你找下sharpziplib库中有没有传委托的重载,如果没有,就自己加一个
类似
UnZip(string filePath,其他参数.., Action<int> reportProcess)
{
    while(解压中)
    {
        ...
        var percent = 根据Zip流.Position或已解压的文件数与总长度的百分数作为进度;
        reportProcess(percent);
    }
}

var reportProcess = percent => this.progressBar.Value = percent;
UnZip(zipPath,...,reportProcess);