我有这段代码:
using (var zip = new ZipFile())
{
zip.CompressionLevel = CompressionLevel.None;
zip.AddDirectory(myDirectoryInfo.FullName);
zip.UseZip64WhenSaving = Zip64Option.Always;
zip.SaveProgress += SaveProgress;
zip.Save(outputPackage);
}
private void SaveProgress(object sender, SaveProgressEventArgs e)
{
if (e.EntriesTotal > 0 && e.EntriesSaved > 0)
{
var counts = String.Format("{0} / {1}", e.EntriesSaved, e.EntriesTotal);
var percentcompletion = ((double)e.EntriesSaved / e.EntriesTotal) * 100;
}
}
我真正想要做的是估计包装完成的剩余时间。但在SaveProgress
中,SaveProgressEventArgs值BytesTransferred
和TotalBytesToTransfer
的值为0.我相信我需要这些来准确估算时间吗?
首先,我应该从这些中得到价值吗?似乎包装工作正常。其次,估算剩余时间的最佳方式是什么,第三,是否有办法确保这是打包大型目录的fastest
方法?我不想压缩 - 这是一个充满已经压缩的文件的目录,只需要填充到存档中。