private void __bw_DoWork_Decompress(object sender, System.ComponentModel.DoWorkEventArgs e) { Object[] args = e.Argument as Object[]; TarLzmaDecoder dec = args[0] as TarLzmaDecoder; String path = args[1] as String; dec.Extract(path); __bw.DoWork -= new System.ComponentModel.DoWorkEventHandler(__bw_DoWork_Decompress); }
private static void ExtractFiles(String archivePath, String destinationDirectory) { DirectoryInfo dest = new DirectoryInfo(destinationDirectory); if (!dest.Exists) { dest.Create(); } using (FileStream fs = new FileStream(archivePath, FileMode.Open, FileAccess.Read)) { TarLzmaDecoder decoder = new TarLzmaDecoder(fs); decoder.Extract(destinationDirectory); // for the limited number of files this is fairly quick, no need for progress events } }
private void __decompress_Click(object sender, EventArgs e) { if (!File.Exists(__decompressFilename.Text)) { return; } if (__fbd.ShowDialog(this) != DialogResult.OK) { return; } TarLzmaDecoder dec = new TarLzmaDecoder(__decompressFilename.Text); dec.ProgressEvent += new EventHandler <ProgressEventArgs>(ProgressEvent); __bw.DoWork += new System.ComponentModel.DoWorkEventHandler(__bw_DoWork_Decompress); __bw.RunWorkerAsync(new Object[] { dec, __fbd.SelectedPath }); }
public TarLzmaPackageArchive(String name, Stream stream) : base(name) { _dec = new TarLzmaDecoder(stream); _dec.ProgressEvent += new EventHandler <ProgressEventArgs>(_dec_ProgressEvent); }