Получение статуса прогресса при распаковке ZIP архива - C#
Формулировка задачи:
Всем доброго времени суток.
Вообщем я распаковываю ZIP архив путем: все работает отлично, но мне помимо обычной разоархивации нужно получить статус разоархивации, то есть сколько процентов разархивировалось в данный момент, чтобы это потом применить на progresBar.
Заранее благодарен.
ZipForge zip = new ZipForge(); zip.FileName = "C:\\Users\\stels009\\Desktop\\Net.zip"; zip.OpenArchive(); zip.BaseDir = "C:\\Users\\stels009\\Desktop\\"; zip.ExtractFiles("*.*"); zip.CloseArchive();
Решение задачи: «Получение статуса прогресса при распаковке ZIP архива»
textual
Листинг программы
public void unZip() { var zip = ZipFile.Read(@"" + appData + "\\123.1"); zip.ExtractProgress += zip_ExtractProgress; progressBar1.Maximum = zip.Count; context = SynchronizationContext.Current; new Thread( delegate() { ExtractAsync(@"" + appData + "\\", zip); }).Start(); } //======================================================================================================================== public void ExtractAsync ( string to, ZipFile zip ) { zip.ExtractAll( to, ExtractExistingFileAction.OverwriteSilently ); zip.Dispose(); } //======================================================================================================================== public void zip_ExtractProgress ( object sender, ExtractProgressEventArgs e ) { switch ( e.EventType ) { case ZipProgressEventType.Extracting_AfterExtractEntry: if ( context != null ) context.Send( ( o ) => { // ---> button1.Text = string.Format( "{0} from {1}", e.EntriesExtracted, e.EntriesTotal ); progressBar1.Value = e.EntriesExtracted; // <--- }, null ); break; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д