public Maybe <string> SelectFilePathToSave(string windowTitle, string defaultExtension, string filter, string initialName) { SaveFileDialog dlg = new SaveFileDialog(); Maybe <string> filepathMaybe = new Maybe <string>(); dlg.Title = windowTitle; dlg.FilterIndex = 0; dlg.DefaultExt = defaultExtension; dlg.CheckPathExists = true; dlg.Filter = filter; dlg.OverwritePrompt = true; dlg.ValidateNames = true; dlg.FileName = initialName; bool?result = dlg.ShowDialog(); if (result == true) { filepathMaybe.AddValue(dlg.FileName); } return(filepathMaybe); }