/// <summary> /// /// </summary> /// <param name="dialog"></param> /// <param name="path"></param> /// <returns>True to continue with the scanning operation, false to abort</returns> public static bool TryGetPath(this SaveFileDialog dialog, out string path, bool forceOverwrite = false) { if (dialog is null) { throw new ArgumentNullException(nameof(dialog)); } dialog.InitialDirectory = Settings.Default.LastAccessedDirectory; path = DialogResult.OK == dialog.ShowDialog() ? dialog.FileName : null; if (path == null) { return(false); } Settings.Default.LastAccessedDirectory = Path.GetDirectoryName(path); Settings.Default.Save(); return(forceOverwrite || !File.Exists(path) || dialog.ConfirmOverwrite(ref path)); }