Esempio n. 1
0
        /// <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));
        }