使用SharpZipLib并获得进度状态?

时间:2012-04-21 23:30:39

标签: c# sharpziplib

如何在SharpZipLib中显示压缩的进度?
我正在开发一个将许多文件压缩到单个zip文件的小应用程序。 它可能需要一段时间才能完成,可能会有一个显示压缩进度的进度条,所以有没有办法知道在 SharpZipLib 中压缩了多少?

2 个答案:

答案 0 :(得分:1)

如果您使用DotNetZip,则会有一个SaveProgress事件,它告诉您已经压缩了多少字节。

DotNetZip SDK中有代码示例,展示了如何使用它。

答案 1 :(得分:0)

是的你可以通过输出流的大小看到压缩了多少,但是不应该显示进度条,你也应该知道输出流到底有多大,当然你可以'事先知道。

您可以在压缩单个文件时测量进度,并按文件大小按比例执行,一个文件将进度百分比移动(size_of_file / total_size_of_all_files) * 100

例如,假设您有3个文件:

file1.bin 1000 kb
file2.bin 500 kb
file3.bin 200 kb

第一个文件压缩移动后进度为59%,第二个文件后移动29%至88%,第三个文件后移至100%。