일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- ListView
- mysql
- Binding
- coding-test
- .net
- csharp
- 코딩테스트
- Coding
- chashtag
- string
- windows10
- WPF
- Microsoft
- File
- Visual Studio
- windows
- logging
- dotNET
- nullable
- git
- log
- C#
- algorithm
- tls
- commit
- Github
- convert
- IValueConverter
- Process
- programmers
Archives
- Today
- Total
CHashtag
[C#] OpenFileDialog로 다중 파일 선택, Default Path 지정 본문
반응형
결론부터 알려드리겠습니다.
public string[] SelectMultiFiles(string defaultPath)
{
string[] selectPath = null;
var openFileDialog = new OpenFileDialog();
openFileDialog.Multiselect = true;
if (Directory.Exists(defaultPath))
{
openFileDialog.InitialDirectory = defaultPath;
}
else
{
openFileDialog.InitialDirectory = @"C:\";
}
bool? result = openFileDialog.ShowDialog();
if (result.HasValue && result.Value)
{
selectPath = openFileDialog.FileNames;
}
return selectPath;
}
안녕하세요.
오늘은 파일이나 폴더를 선택할 수 있는 OpenFileDialog에 대해 알아보도록 하겠습니다.
win32 vs forms
OpenFileDialog는 Microsoft.Win32, System.Windows.Forms 두 군데에 구현되어있습니다.
내부적으로 구현 내용은 아래와 같습니다.
사용 방법은 동일하고 약간의 차이점을 아래에 정리해 보았습니다.
이때 using이 사용 가능한 이유는 Forms가 내부적으로 IDisposable을 구현하고 있기 때문입니다.
Forms | win32 | |
using 사용 가능 | O | X |
ShowDialog result type | bool | bool? |
WPF 프로젝트에서 사용할 경우 win32, WinForm 프로젝트에서 사용할 경우 Forms 사용을 추천드립니다.
이번 강의에서는 win32를 사용하여 구현해 보도록 하겠습니다.
OpenFileDialog
public string SelectFile(string defaultPath)
{
string selectPath = string.Empty;
var openFileDialog = new OpenFileDialog();
if (Directory.Exists(defaultPath))
{
openFileDialog.InitialDirectory = defaultPath;
}
else
{
openFileDialog.InitialDirectory = @"C:\";
}
bool? result = openFileDialog.ShowDialog();
if (result.HasValue && result.Value)
{
selectPath = openFileDialog.FileName;
}
return selectPath;
}
public string[] SelectMultiFiles(string defaultPath)
{
string[] selectPath = null;
var openFileDialog = new OpenFileDialog();
openFileDialog.Multiselect = true;
if (Directory.Exists(defaultPath))
{
openFileDialog.InitialDirectory = defaultPath;
}
else
{
openFileDialog.InitialDirectory = @"C:\";
}
bool? result = openFileDialog.ShowDialog();
if (result.HasValue && result.Value)
{
selectPath = openFileDialog.FileNames;
}
return selectPath;
}
감사합니다.
반응형
'C#' 카테고리의 다른 글
[C#] get file size (파일 크기 구하는법) (0) | 2021.02.19 |
---|---|
[C#] nullable System.InvalidOperationException 해결법 (0) | 2021.02.18 |
[C#] 문자열(string) 대문자, 소문자로 변환하기, ToUpperInvariant 란? (0) | 2021.02.17 |
[C#] DateTime to TimeStamp, TimeStamp to DateTime 변환하기 (1) | 2021.02.16 |
[C#] .net framework, wpf 등 프레임워크 실제 동작 코드 보는 방법 (0) | 2021.02.16 |