在解壓縮時回報總進度而不是個別檔案(entry)的進度。
網路上幾乎都是個別檔案的進度,但我只想要知道總進度...最後自己耐著性子一個一個 prop 去看然後研究出來,大致上如下
using (ZipFile zip = new ZipFile(fromPath)) {
zip.ExtractProgress += (object sender, ExtractProgressEventArgs e) => {
if (e.EntriesTotal > e.EntriesExtracted) {
int percentage = Convert.ToInt32(e.EntriesExtracted / (0.01 * e.EntriesTotal));
string curEntry = e.CurrentEntry.FileName.Split('/').Last();
Console.WriteLine($"Extracting {curEntry} {percentage} %");
}
};
zip.ExtractAll(toPath, ExtractExistingFileAction.OverwriteSilently);
}
重點在 if 的離開條件跟百分比用的 prop 是 Entries 的數量而不是 Byte 數。
沒有留言:
張貼留言