private void newPackButton_Click(object sender, EventArgs e)
 {
     if (saveFileDialog.ShowDialog(this) == System.Windows.Forms.DialogResult.OK)
     {
         try
         {
             Package newpack = new Package(File.Create(saveFileDialog.FileName));
             writeManifest(new PackageManifest { Version = 1 });
             newpack.CreateEntry(Path.Combine(Path.GetTempPath(), "info.xml"));
             newpack.Save(saveFileDialog.FileName);
             newpack.Close();
             openFileDialog.FileName = saveFileDialog.FileName;
             openFile();
             MessageBox.Show(this, "New package created.", Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
         }
         catch (Exception ex)
         {
             MessageBox.Show(this, "Couldn't create new package: " + ex.Message, Text, MessageBoxButtons.OK, MessageBoxIcon.Error);
         }
         finally
         {
             if (File.Exists(Path.Combine(Path.GetTempPath(), "info.xml"))) File.Delete(Path.Combine(Path.GetTempPath(), "info.xml"));
         }
     }
 }
        private void packPackButton_Click(object sender, EventArgs e)
        {
            folderBrowserDialog1.Description = "Select folder to package";
            if (folderBrowserDialog1.ShowDialog(this) == System.Windows.Forms.DialogResult.OK && saveFileDialog.ShowDialog(this) == System.Windows.Forms.DialogResult.OK)
            {
                Package newpack = null;
                try
                {
                    newpack = new Package(File.Create(saveFileDialog.FileName));
                    foreach (string path in Directory.GetFiles(folderBrowserDialog1.SelectedPath))
                    {
                        newpack.CreateEntry(path);
                    }

                    ProgressForm prog = new ProgressForm(callback => newpack.Save(saveFileDialog.FileName, callback));
                    prog.ShowDialog(this);
                    if (prog.Error == null)
                    {
                        MessageBox.Show(this, "Packing successful.", Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    else
                    {
                        MessageBox.Show(this, "Error while packing: " + prog.Error, Text, MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(this, "Error while packing: " + ex.Message, Text, MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                finally
                {
                    if (newpack != null) newpack.Close();
                }
            }
        }