我将如何显示在SharpZipLib中压缩的进度?
我正在开发一个将许多文件压缩到单个zip文件的小应用程序。 它可能需要一段时间才能完成,可能会有一个进度条显示压缩的进度,那么有没有办法知道在SharpZipLib中压缩了多少?使用SharpZipLib并获取进度状态?
回答
是的,你可以看到输出流的大小压缩了多少,但不足以显示进度条,你也应该知道输出流最终会有多大,当然你也可以事先不知道。
荏苒单个文件时,您可以衡量进步党,并通过文件的大小做proportionaly,一个文件移动进度由(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中有代码示例显示如何使用它。
DotNetZip有不同的类型,如TAR,GZIP,BZIP2 ...? – 2012-04-22 00:55:52
不是焦油。 Zip,GZIP,BZIP2。但进度事件是特定于Zip格式的。 – Cheeso 2012-04-22 01:47:00
- 1. 使用并行获取状态代码
- 2. ajax调用进度条/进度状态
- 3. SharpZipLib - 该产品的状态如何?
- 4. 使用ui-sref获取动态状态
- 5. 从类库方法中获取进度状态
- 6. 如何在android中获取加载mapview的进度状态?
- 7. 如何在PHP中获取复制函数的进度状态?
- 8. 在Asp.net中获取长执行SP的进度状态?
- 9. 获取MSI安装的进度值和状态
- 10. 如何从SQL Server获取进度状态
- 11. 如何获取文件上传进度状态
- 12. 从整个印度层获取状态
- 13. 使用广播接收器获取WiFi状态并对其进行操作
- 14. 在显示状态栏之前获取高度状态栏?
- 15. 获取进程的自定义状态
- 16. 合并父进入休眠状态后获取子标识
- 17. 获取每个作业的最后进程并识别状态
- 18. 返回进度状态
- 19. PHP上传进度状态
- 20. Excel VBA进度/状态栏
- 21. Haskell Monad状态:获取并修改
- 22. 系统API来获取进程使用的内存状态
- 23. 如何使用模块获取进程ID,名称和状态
- 24. 获取Facebook状态并回复这些状态
- 25. 使用PHP获取Facebook好友状态?
- 26. 使用Twitterizer2获取状态ID
- 27. 如何使用JQuery获取Twitter状态
- 28. 使用jquery获取url状态
- 29. 使用状态码405获取org.apache.camel.component.http.HttpOperationFailedException
- 30. 将获取的JSON数据设置为状态并使用它
我认为这是我的应用程序的意思解决方案,因为它将会是很多小文件,无论它压缩多少文件都没关系。 – 2012-04-22 00:11:16
是的,我认为进度条在这种情况下会顺利,顺便说一句。考虑转移到DotNetZip,它更容易使用然后SharpZipLib – 2012-04-22 00:27:31
ummm真的!我还是新来的zip东西,一些建议我使用SharpZipLib! 看看这个问题http://stackoverflow.com/questions/10263829/which-compression-type-should-i-choose-in-sharpziplib#comment13197644_10263829 – 2012-04-22 00:50:06