我將如何顯示在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. 進程文件 - 獲取狀態和更新進度
- 3. 合併序列進度狀態報告
- 4. SharpZipLib - 該產品的狀態如何?
- 5. 寫進度狀態
- 6. 使用ui-sref獲取動態狀態
- 7. 從類庫方法中獲取進度狀態
- 8. 在java中獲取AVRDUDE flash進度狀態
- 9. 獲取MSI安裝的進度值和狀態
- 10. 如何從SQL Server獲取進度狀態
- 11. 在Asp.net中獲取長執行SP的進度狀態?
- 12. 如何在android中獲取加載mapview的進度狀態?
- 13. 如何獲取文件上傳進度狀態
- 14. 如何在PHP中獲取複製函數的進度狀態?
- 15. 從整個印度層獲取狀態
- 16. 獲取狀態條onCreate()的高度
- 17. 使用廣播接收器獲取WiFi狀態並對其進行操作
- 18. 使用CoreLocation獲取用戶狀態
- 19. 在顯示狀態欄之前獲取高度狀態欄?
- 20. 獲取每個作業的最後進程並識別狀態
- 21. 合併父進入休眠狀態後獲取子標識
- 22. 返回進度狀態
- 23. 狀態條進度條
- 24. Excel VBA進度/狀態欄
- 25. PHP上傳進度狀態
- 26. 使進度條顯示下載狀態
- 27. 如何使用pid獲取進程狀態?
- 28. 如何使用模塊獲取進程ID,名稱和狀態
- 29. 使用gatling進行REST API測試:獲取狀態400
- 30. 系統API來獲取進程使用的內存狀態
我認爲這是我的應用程序的意思解決方案,因爲它將會是很多小文件,無論它壓縮多少文件都沒關係。 – 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