コード例 #1
0
        private void __compress_Click(object sender, EventArgs e)
        {
            if (__sfd.ShowDialog(this) != DialogResult.OK)
            {
                return;
            }

            String destFilename = __sfd.FileName;

            TarLzmaEncoder enc = new TarLzmaEncoder(__compressRoot.Text, false);

            enc.ProgressEvent += new EventHandler <ProgressEventArgs>(ProgressEvent);

            FileSystemInfo[] files = new FileSystemInfo[__items.Items.Count];
            for (int i = 0; i < __items.Items.Count; i++)
            {
                files[i] = (FileSystemInfo)__items.Items[i];
            }

            if (__sfd.FilterIndex != 2)
            {
                __bw.DoWork += new System.ComponentModel.DoWorkEventHandler(__bw_DoWork_CompressTarLzma);
                __bw.RunWorkerAsync(new Object[] { enc, destFilename, files });
            }
            else
            {
                __bw.DoWork += new System.ComponentModel.DoWorkEventHandler(__bw_DoWork_CompressTar);
                __bw.RunWorkerAsync(new Object[] { enc, destFilename, files });
            }
        }
コード例 #2
0
        private void __bw_DoWork_CompressTar(object sender, System.ComponentModel.DoWorkEventArgs e)
        {
            Object[] args = e.Argument as Object[];

            TarLzmaEncoder enc  = args[0] as TarLzmaEncoder;
            String         path = args[1] as String;

            enc.SaveTarball(path);

            enc.Dispose();

            __bw.DoWork -= new System.ComponentModel.DoWorkEventHandler(__bw_DoWork_CompressTar);
        }
コード例 #3
0
        private void __bw_DoWork_CompressTarLzma(object sender, System.ComponentModel.DoWorkEventArgs e)
        {
            Object[] args = e.Argument as Object[];

            TarLzmaEncoder enc  = args[0] as TarLzmaEncoder;
            String         path = args[1] as String;

            FileSystemInfo[] fsitems = args[2] as FileSystemInfo[];

            BeginInvoke(new MethodInvoker(delegate() {
                _progress.ShowDialog(this);
            }));

            foreach (FileSystemInfo fsi in fsitems)
            {
                ProgressEvent(this, new ProgressEventArgs(0, fsi.FullName));

                DirectoryInfo di = fsi as DirectoryInfo;
                if (di != null)
                {
                    enc.AddDirectory(di);
                }

                FileInfo fi = fsi as FileInfo;
                if (fi != null)
                {
                    enc.AddFile(fi);
                }
            }

            enc.FinishAdding();

            enc.Compress(path);

            enc.Dispose();

            __bw.DoWork -= new System.ComponentModel.DoWorkEventHandler(__bw_DoWork_CompressTarLzma);
        }