// Exception save không được file .meg private void HandleSaveException(Exception ex, SerializationEventArgs e) { MessageBox.Show(this, "Save File operation failed. File name: " + e.FileName + "\n" + "Reason: " + ex.Message, Application.ProductName); e.Error = true; }
private void docManager_SaveEvent(object sender, SerializationEventArgs e) { try { e.Formatter.Serialize(e.SerializationStream, TheLayers); } catch (ArgumentNullException ex) { HandleSaveException(ex, e); } catch (SerializationException ex) { HandleSaveException(ex, e); } catch (SecurityException ex) { HandleSaveException(ex, e); } }
private void docManager_LoadEvent(object sender, SerializationEventArgs e) { try { TheLayers = (Layers)e.Formatter.Deserialize(e.SerializationStream); } catch (ArgumentNullException ex) { HandleLoadException(ex, e); } catch (SerializationException ex) { HandleLoadException(ex, e); } catch (SecurityException ex) { HandleLoadException(ex, e); } }
public bool SaveDocument(SaveType type) { string newFileName = this.fileName; System.Windows.Forms.SaveFileDialog saveFileDialog1 = new System.Windows.Forms.SaveFileDialog(); saveFileDialog1.Filter = fileDlgFilter; if ((type == SaveType.SaveAs) || Empty(newFileName)) { if (!Empty(newFileName)) { saveFileDialog1.InitialDirectory = Path.GetDirectoryName(newFileName); saveFileDialog1.FileName = Path.GetFileName(newFileName); } else { saveFileDialog1.InitialDirectory = fileDlgInitDir; saveFileDialog1.FileName = newDocName; } DialogResult res = saveFileDialog1.ShowDialog(frmOwner); if (res != DialogResult.OK) { return(false); } newFileName = saveFileDialog1.FileName; fileDlgInitDir = new FileInfo(newFileName).DirectoryName; } try { using (Stream stream = new FileStream( newFileName, FileMode.Create, FileAccess.Write)) { IFormatter formatter = new BinaryFormatter(); if (SaveEvent != null) { SerializationEventArgs args = new SerializationEventArgs( formatter, stream, newFileName); SaveEvent(this, args); if (args.Error) { return(false); } } } } catch (ArgumentNullException ex) { return(HandleSaveException(ex, newFileName)); } catch (ArgumentOutOfRangeException ex) { return(HandleSaveException(ex, newFileName)); } catch (ArgumentException ex) { return(HandleSaveException(ex, newFileName)); } catch (SecurityException ex) { return(HandleSaveException(ex, newFileName)); } catch (FileNotFoundException ex) { return(HandleSaveException(ex, newFileName)); } catch (DirectoryNotFoundException ex) { return(HandleSaveException(ex, newFileName)); } catch (PathTooLongException ex) { return(HandleSaveException(ex, newFileName)); } catch (IOException ex) { return(HandleSaveException(ex, newFileName)); } Dirty = false; SetFileName(newFileName); return(true); }
public bool OpenDocument(string newFileName) { if (!CloseDocument()) { return(false); } if (Empty(newFileName)) { System.Windows.Forms.OpenFileDialog openFileDialog1 = new System.Windows.Forms.OpenFileDialog(); openFileDialog1.Filter = fileDlgFilter; openFileDialog1.InitialDirectory = fileDlgInitDir; DialogResult res = openFileDialog1.ShowDialog(frmOwner); if (res != DialogResult.OK) { return(false); } newFileName = openFileDialog1.FileName; fileDlgInitDir = new FileInfo(newFileName).DirectoryName; } try { using (Stream stream = new FileStream( newFileName, FileMode.Open, FileAccess.Read)) { IFormatter formatter = new BinaryFormatter(); if (LoadEvent != null) { SerializationEventArgs args = new SerializationEventArgs( formatter, stream, newFileName); LoadEvent(this, args); if (args.Error) { if (OpenEvent != null) { OpenEvent(this, new OpenFileEventArgs(newFileName, false)); } return(false); } if (DocChangedEvent != null) { DocChangedEvent(this, new EventArgs()); } } } } catch (ArgumentNullException ex) { return(HandleOpenException(ex, newFileName)); } catch (ArgumentOutOfRangeException ex) { return(HandleOpenException(ex, newFileName)); } catch (ArgumentException ex) { return(HandleOpenException(ex, newFileName)); } catch (SecurityException ex) { return(HandleOpenException(ex, newFileName)); } catch (FileNotFoundException ex) { return(HandleOpenException(ex, newFileName)); } catch (DirectoryNotFoundException ex) { return(HandleOpenException(ex, newFileName)); } catch (PathTooLongException ex) { return(HandleOpenException(ex, newFileName)); } catch (IOException ex) { return(HandleOpenException(ex, newFileName)); } Dirty = false; SetFileName(newFileName); if (OpenEvent != null) { OpenEvent(this, new OpenFileEventArgs(newFileName, true)); } return(true); }