private void buttonDecompressPCC_Click(object sender, EventArgs e)
{
if (openPccDialog.ShowDialog() == DialogResult.OK)
{
string fileName = openPccDialog.FileName;
string backupFile = fileName + ".bak";
if (File.Exists(fileName))
{
try
{
DialogResult dialogResult = MessageBox.Show("Do you want to make a backup file?", "Make Backup", MessageBoxButtons.YesNo);
if (dialogResult == DialogResult.Yes)
{
File.Copy(fileName, backupFile);
}
MemoryStream m;
using (FileStream fs = new FileStream(fileName, FileMode.Open))
{
m = CompressionHelper.DecompressME3(fs);
}
File.WriteAllBytes(fileName, m.ToArray());
MessageBox.Show("File " + Path.GetFileName(fileName) + " was successfully decompressed.", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception exc)
{
MessageBox.Show("An error occurred while compressing " + Path.GetFileName(fileName) + ":\n" + exc.Message, "Exception Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
//recovering backup file
if (File.Exists(backupFile))
{
File.Delete(fileName);
File.Move(backupFile, fileName);
}
}
}
}
}