示例#1
0
        ////////////////////////////////////////////////////////////////////
        // Display archive name
        ////////////////////////////////////////////////////////////////////

        private void DisplayArchiveName()
        {
            // archive is open for reading
            if (InflateZipFile.IsOpen(Inflate))
            {
                ArchiveNameLabel.BackColor = Color.FromArgb(192, 255, 255);
                ArchiveNameLabel.Text      = Inflate.ArchiveName;
            }

            // archive is open for writing
            else if (DeflateZipFile.IsOpen(Deflate))
            {
                ArchiveNameLabel.BackColor = Color.FromArgb(255, 192, 255);
                ArchiveNameLabel.Text      = Deflate.ArchiveName;
            }

            // archive is not open
            else
            {
                ArchiveNameLabel.BackColor = SystemColors.Control;
                ArchiveNameLabel.Text      = "UZipDotNet";
            }

            // calculate required width
            Int32 Width = (Int32)Math.Ceiling(CreateGraphics().MeasureString(ArchiveNameLabel.Text, ArchiveNameLabel.Font).Width) + 50;

            // archive name position
            ArchiveNameLabel.Width = Math.Min(Math.Max(Width, 200), ClientSize.Width - 50);
            ArchiveNameLabel.Left  = (ClientSize.Width - ArchiveNameLabel.Width) / 2;
            ArchiveNameLabel.Top   = 8;

            // enable/disable some buttons
            OpenButton.Enabled    = !DeflateZipFile.IsOpen(Deflate);
            ExtractButton.Enabled = InflateZipFile.IsOpen(Inflate);
            AddButton.Enabled     = InflateZipFile.IsOpen(Inflate) || DeflateZipFile.IsOpen(Deflate);
            DeleteButton.Enabled  = AddButton.Enabled;

            // change button name
            NewButton.Text = DeflateZipFile.IsOpen(Deflate) ? "Save" : "New";

            // update control
            Refresh();
            return;
        }
示例#2
0
        ////////////////////////////////////////////////////////////////////
        // New/Save archive file
        ////////////////////////////////////////////////////////////////////

        private void OnNew
        (
            object sender,
            EventArgs e
        )
        {
            // test for save mode
            if (DeflateZipFile.IsOpen(Deflate))
            {
                OnSave();
                return;
            }

            // get zip file name from operator
            SaveFileDialog SFD = new SaveFileDialog();

            SFD.Filter           = "Zip files (*.zip)|*.zip";
            SFD.CheckFileExists  = false;
            SFD.CheckPathExists  = true;
            SFD.RestoreDirectory = true;
            SFD.OverwritePrompt  = true;
            SFD.DefaultExt       = "zip";
            SFD.AddExtension     = true;
            if (SFD.ShowDialog() != DialogResult.OK)
            {
                return;
            }

            // display empty datagrid
            AddDataGrid();

            // trace
            Trace.Write("Create ZIP archive: " + SFD.FileName);

            // Inflate file is open
            if (InflateZipFile.IsOpen(Inflate))
            {
                // release zip directory object
                ZipDir = null;

                // close inflate zip file if open
                Inflate.CloseZipFile();

                // display zip file directory in data grid view
                LoadDataGrid();
            }

            // create deflate object
            if (Deflate == null)
            {
                Deflate = new DeflateZipFile();
            }

            // create empty zip file
            if (Deflate.CreateArchive(SFD.FileName))
            {
                MessageBox.Show("Create ZIP file Error\n" + Deflate.ExceptionStack[0] + "\n" + Deflate.ExceptionStack[1]);
                return;
            }

            // get link to the empty zip directory
            ZipDir = Deflate.ZipDir;

            // display zip file directory in data grid view
            LoadDataGrid();
            return;
        }