-
-
Notifications
You must be signed in to change notification settings - Fork 40
Expand file tree
/
Copy pathFileSystemExtensions.cs
More file actions
41 lines (37 loc) · 1.1 KB
/
FileSystemExtensions.cs
File metadata and controls
41 lines (37 loc) · 1.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
using System;
using System.Windows.Forms;
namespace TSMapEditor.Misc
{
public static class FileSystemExtensions
{
public const string AllFilesFilter = "All files|*.*";
public static void OpenFile(
Action<string> onOpened,
Action onAborted = null,
string filter = AllFilesFilter,
bool checkFileExist = true,
string initialDirectory = null
) {
#if WINDOWS
using (OpenFileDialog openFileDialog = new OpenFileDialog())
{
openFileDialog.InitialDirectory = string.IsNullOrEmpty(initialDirectory) ? Environment.CurrentDirectory : initialDirectory;
openFileDialog.Filter = string.IsNullOrEmpty(filter) ? AllFilesFilter : filter;
openFileDialog.CheckFileExists = checkFileExist;
openFileDialog.RestoreDirectory = true;
switch (openFileDialog.ShowDialog())
{
case DialogResult.OK:
onOpened?.Invoke(openFileDialog.FileName);
break;
default:
onAborted?.Invoke();
break;
}
}
#else
throw new NotImplementedException($"{nameof(FileSystemExtensions)}::{nameof(OpenFile)}");
#endif
}
}
}