//////////////////////////////////////////////////////////////////// // 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; }
//////////////////////////////////////////////////////////////////// // 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; }