Пример #1
0
        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);
        }
Пример #2
0
        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
            }
        }
Пример #3
0
        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 });
        }
Пример #4
0
 public TarLzmaPackageArchive(String name, Stream stream) : base(name)
 {
     _dec = new TarLzmaDecoder(stream);
     _dec.ProgressEvent += new EventHandler <ProgressEventArgs>(_dec_ProgressEvent);
 }