这必须非常简单,而且这似乎是一个非常常见的问题,但我一生都找不到“直截了当”的答案。
我想创建一个 ProgressBar,显示 SharpZipLib 正在提取的 Zip 文件。
FastZip 和 FastZipEvents 类提供单个文件的进度,但不提供整个 Zip 中的位置。也就是说,如果 Zip 包含 200 个文件,那么当前正在提取什么文件。我不关心单个文件的进度(例如 Foo.txt 中的 20KB 到 43KB)。
我想我可以通过首先创建一个 ZipFile 并访问 Count 属性来捏造一种方法。然后......使用 ZipInputStream 或 FastZip 来提取并保持进度计数,但我认为这意味着 Zip 被有效地解压缩了两次(一次完全进入内存),我不喜欢那样。
有什么干净的方法吗?