private void mnuExtractFile_Click(object sender, EventArgs e)
{
try
{
string qbname = lstPakContents.SelectedItems[0].SubItems[1].Text;
string fname = qbname.Replace('\\', '#').Replace('/', '#');
if (AppState.LastQbExtractPath.Length != 0)
{
if (Directory.Exists(AppState.LastQbExtractPath))
{
saveQb.InitialDirectory = AppState.LastQbExtractPath;
fname = Path.Combine(AppState.LastQbExtractPath, fname);
}
}
fname = getBestFullFilename(fname);
saveQb.Filter = string.Format("{0} (*.qb.{1})|*.qb.{1}|All files (*.*)|*.*", _pakFormat.PakFormatType.ToString(), _pakFormat.FileExtension);
saveQb.FileName = fname;
if (saveQb.ShowDialog(this) != DialogResult.Cancel)
{
this.Cursor = Cursors.WaitCursor;
AppState.LastQbExtractPath = (new FileInfo(saveQb.FileName)).DirectoryName;
if (File.Exists(saveQb.FileName))
File.Delete(saveQb.FileName);
_pakFile.ExtractFile(qbname, saveQb.FileName);
}
}
catch (Exception ex)
{
showException("Extract Error", ex);
}
finally
{
this.Cursor = Cursors.Default;
}
}