文件字节: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);

解决方案 »

  1.   

    Action<int> reportProcess = percent => this.progressBar.Value = percent;
      

  2.   


    根据文件数进度条太快。。文件数量少. 但是很大..
    根据总长度的百分数,但是总长度不知道怎么获取. 我看了这个动态库的接口文档. 没找到有总长度获取方法,不知道是没有,还是我没找到。如果自己写的话,循环整个压缩文件,如果文件数量非常非常多,可能会消耗些资源。
    根据Zip流.Position 这个不理解.. 求指导.. 谢谢!
      

  3.   

    被无视了?文件总大小,你可以先读取出来,然后再解压
    //文件总大小(字节)
    var file = new FileInfo(zipPath).Length;
      

  4.   

    UnZip的时候,它内部使用到了流,
    Length:总大小
    Position:顺序读取时,当前流的内部偏移量那个库是开源的,有源代码版的