private void Menu_File_Save__Click(object sender, EventArgs e) { if (pathCurrent == null) { Menu_File_SaveAs__Click(sender, e); return; } if (data != null) { Stream file = null; try { MessagePrinter.ClearMsg(); file = new FileStream(pathCurrent, FileMode.Create, FileAccess.Write, FileShare.ReadWrite); data.Build(new PLBWriter(file)); SetDirty(false); MessagePrinter.ShowMsg("There were some issues while saving:", "Warning!"); } catch (Exception ex) { MessageBox.Show( //show error message "An error occured while saving:\n" + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { file?.Close(); } } }
static void ParseArgs(string[] args) { int mode = 0; if (args[0].Equals("/wj") || args[0].Equals("/writeJson", StringComparison.OrdinalIgnoreCase)) { mode = 1; } else if (args[0].Equals("/wx") || args[0].Equals("/writeXml", StringComparison.OrdinalIgnoreCase)) { mode = 2; } else if (args[0].Equals("/rj") || args[0].Equals("/readJson", StringComparison.OrdinalIgnoreCase)) { mode = 3; } else if (args[0].Equals("/rx") || args[0].Equals("/readXml", StringComparison.OrdinalIgnoreCase)) { mode = 4; } else if (args[0].Equals("/t") || args[0].Equals("/test", StringComparison.OrdinalIgnoreCase)) { mode = 5; } else { Console.WriteLine("ERROR: Invalid Argument(s)\n"); ShowHelp(); return; } if (args.Length < 3) { Console.WriteLine("ERROR: Missing File Argument(s)\n"); return; } else if (args.Length > 3) { Console.WriteLine("ERROR: Unexpected File Argument(s)\n"); return; } try { //open files Stream fileIn = new FileStream(args[1], FileMode.Open, FileAccess.Read, FileShare.ReadWrite); Stream fileOut = new FileStream(args[2], FileMode.Create, FileAccess.Write, FileShare.ReadWrite); PLB data = null; //select action based on mode if (mode < 3) //write json/xml { data = new PLB(new PLBReader(fileIn)); PlbEdit.SerializePLB(fileOut, data, mode); } else if (mode < 5) //read json/xml { PlbEdit.DeserializePLB(fileIn, ref data, mode - 2); data.Build(new PLBWriter(fileOut)); } else { data = new PLB(new PLBReader(fileIn)); data.Build(new PLBWriter(fileOut)); } } catch (Exception e) { Console.WriteLine($"ERROR: {e.Message}\n"); } }