/// <summary> /// Attempts to display the specified record on the gui /// </summary> /// <param name="selectedRecord">Record to view</param> private void OpenFileRecord(FileRecord selectedRecord) { if (selectedRecord == null) { return; } string extractedFileName; try { extractedFileName = selectedRecord.ExtractTempFile(_ggpkPath); var extension = Path.GetExtension(selectedRecord.Name); // If we're dealing with .dat files then just create a human readable CSV and view that instead if (!String.IsNullOrEmpty(extension) && extension.ToLower().Equals(".dat")) { var extractedCsv = Path.GetTempFileName(); File.Move(extractedCsv, extractedCsv + ".csv"); extractedCsv = extractedCsv + ".csv"; using (var inStream = File.Open(extractedFileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) { var tempWrapper = new DatWrapper(inStream, selectedRecord.Name); File.WriteAllText(extractedCsv, tempWrapper.GetCSV()); } File.Delete(extractedFileName); extractedFileName = extractedCsv; } } catch (Exception ex) { MessageBox.Show( string.Format(Settings.Strings["ViewSelectedItem_Failed"], ex.Message), Settings.Strings["Error_Caption"], MessageBoxButton.OK, MessageBoxImage.Error); return; } var fileViewerProcess = new Process { StartInfo = new ProcessStartInfo(extractedFileName), EnableRaisingEvents = true }; fileViewerProcess.Exited += fileViewerProcess_Exited; fileViewerProcess.Start(); }
private void ExportCSV() { var sfd = new SaveFileDialog(); sfd.FileName = Path.GetFileNameWithoutExtension(FileName) + ".csv"; if (sfd.ShowDialog() == true) { try { File.WriteAllText(sfd.FileName, _wrapper.GetCSV()); } catch (Exception ex) { MessageBox.Show(string.Format(Settings.Strings["DatViewer_ExportCSV_Failed"], ex.Message), Settings.Strings["Error_Caption"], MessageBoxButton.OK, MessageBoxImage.Error); return; } MessageBox.Show(string.Format(Settings.Strings["DatViewer_ExportCSV_Successful"], sfd.FileName), Settings.Strings["DatViewer_ExportCSV_Successful_Caption"], MessageBoxButton.OK, MessageBoxImage.Information); } }