使用 SharpZipLib 并获取进度状态

本文关键字:状态 获取 SharpZipLib 使用 | 更新日期: 2023-09-27 18:31:50

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

使用 SharpZipLib 并获取进度状态

是的,您可以按输出流的大小查看压缩了多少,但这还不足以显示进度条,您还应该知道最后输出流有多大,当然您不能提前知道。

您可以在压缩单个文件时测量进度,并按文件大小按比例执行此操作,一个文件将进度百分比移动(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%。

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

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