Changeset 15 for Common/Dialogs.cs


Ignore:
Timestamp:
Jun 18, 2024, 12:15:33 PM (5 months ago)
Author:
chronos
Message:
  • Modified: Updated files.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • Common/Dialogs.cs

    r14 r15  
    1 using System.IO;
     1using System;
     2using System.Collections.Generic;
     3using System.IO;
     4using System.Linq;
    25using System.Windows.Forms;
    36
    47namespace Common
    58{
    6     class Dialogs
     9    public class Dialogs
    710    {
    811        public const string AnyFile = "Any file";
     12        public const string AnyFileExt = "*";
    913
    10         public static string OpenFileDialog(string fileName, string fileType, string fileExtension)
     14        public static bool OpenFileDialog(string fileName, string[] fileTypes, string defaultExt, out string newFileName)
    1115        {
    12             OpenFileDialog dlg = new OpenFileDialog { Filter = fileType + @"|*." + fileExtension + @"|" + AnyFile + @"|*.*", DefaultExt = fileExtension };
     16            string filter = string.Join(@"|", fileTypes) + @"|" + AnyFile + @"|*." + AnyFileExt;
     17            OpenFileDialog openFileDialog = new OpenFileDialog { Filter = filter, DefaultExt = defaultExt };
    1318            if (!string.IsNullOrEmpty(fileName))
    1419            {
    15                 dlg.FileName = Path.GetFileName(fileName);
    16                 dlg.InitialDirectory = Path.GetDirectoryName(fileName);
     20                openFileDialog.FileName = Path.GetFileName(fileName);
     21                openFileDialog.InitialDirectory = Path.GetDirectoryName(fileName);
    1722            }
    1823
    19             if (dlg.ShowDialog() == DialogResult.OK)
     24            if (openFileDialog.ShowDialog() == DialogResult.OK)
    2025            {
    21                 fileName = dlg.FileName;
     26                newFileName = openFileDialog.FileName;
     27                return true;
    2228            }
    23             return fileName;
     29            else
     30            {
     31                newFileName = null;
     32                return false;
     33            }
    2434        }
    2535
    26         public static string SaveFileDialog(string fileName, string fileType, string fileExtension)
     36        public static bool OpenFileDialogMulti(string fileName, string fileType, string fileExtension, out string[] newFileNames)
    2737        {
    28             SaveFileDialog dlg = new SaveFileDialog { Filter = fileType + @"|*." + fileExtension + @"|" + AnyFile + @"|*.*", DefaultExt = fileExtension };
     38            if (fileExtension.StartsWith(".", StringComparison.Ordinal)) fileExtension = fileExtension.Substring(1);
     39            OpenFileDialog openFileDialog = new OpenFileDialog { Filter = fileType + @"|*." + fileExtension + @"|" + AnyFile + @"|*." + AnyFileExt, DefaultExt = fileExtension };
    2940            if (!string.IsNullOrEmpty(fileName))
    3041            {
    31                 dlg.FileName = Path.GetFileName(fileName);
    32                 dlg.InitialDirectory = Path.GetDirectoryName(fileName);
     42                openFileDialog.FileName = Path.GetFileName(fileName);
     43                openFileDialog.InitialDirectory = Path.GetDirectoryName(fileName);
    3344            }
    3445
    35             if (dlg.ShowDialog() == DialogResult.OK)
     46            openFileDialog.Multiselect = true;
     47
     48            if (openFileDialog.ShowDialog() == DialogResult.OK)
    3649            {
    37                 fileName = dlg.FileName;
     50                newFileNames = openFileDialog.FileNames;
     51                return true;
    3852            }
    39             return fileName;
     53            else
     54            {
     55                newFileNames = null;
     56                return false;
     57            }
     58        }
     59
     60        public static bool SaveFileDialog(string fileName, string fileType, string fileExtension, out string newFileName)
     61        {
     62            if (fileExtension.StartsWith(".", StringComparison.Ordinal)) fileExtension = fileExtension.Substring(1);
     63            SaveFileDialog saveFileDialog = new SaveFileDialog { Filter = fileType + @"|*." + fileExtension + @"|" + AnyFile + @"|*." + AnyFileExt, DefaultExt = fileExtension };
     64            if (!string.IsNullOrEmpty(fileName))
     65            {
     66                saveFileDialog.FileName = Path.GetFileName(fileName);
     67                saveFileDialog.InitialDirectory = Path.GetDirectoryName(fileName);
     68            }
     69
     70            if (saveFileDialog.ShowDialog() == DialogResult.OK)
     71            {
     72                newFileName = saveFileDialog.FileName;
     73                return true;
     74            }
     75            else
     76            {
     77                newFileName = null;
     78                return false;
     79            }
    4080        }
    4181    }
Note: See TracChangeset for help on using the changeset viewer.