C#을 사용하다보면 파일을 선택하거나 불러오는 작업이 필요할 때가 많습니다. 이럴 때 사용하는 기능 중 하나가 OpenFileDialog입니다. 이번 글에서는 OpenFileDialog의 기본 사용법과 주요 기능들에 대해 자세히 알아보겠습니다.
1. OpenFileDialog의 기본 사용법
OpenFileDialog myOpenFileDialog = new OpenFileDialog();
위 코드는 OpenFileDialog의 인스턴스를 생성합니다.
2. 기본 설정 값 지정하기
DefaultExt: 기본 확장자명을 설정합니다.
myOpenFileDialog.DefaultExt = "*.*";
InitialDirectory: 처음에 표시될 디렉토리를 설정합니다. 기본값은 "내 문서"입니다.
myOpenFileDialog.InitialDirectory = ".";
Filter: 선택 가능한 파일의 확장자를 설정합니다. 각 확장자는 "|"로 구분합니다.
myOpenFileDialog.Filter = "exe files (*.exe)|*.exe|All files (*.*)|*.*";
FilterIndex: 대화상자에서 기본으로 선택될 파일 유형의 인덱스를 설정합니다.
myOpenFileDialog.FilterIndex = 1;
RestoreDirectory: 대화상자를 닫을 때 원래의 디렉토리로 복귀할지 여부를 설정합니다.
myOpenFileDialog.RestoreDirectory = true;
3. 선택된 파일 정보 가져오기
FileName: 선택한 파일의 전체 경로와 파일명을 반환합니다.
string strProgrampath = myOpenFileDialog.FileName;
SafeFileName: 선택한 파일명만 반환합니다.
string strProgram = myOpenFileDialog.SafeFileName.Substring(0, myOpenFileDialog.SafeFileName.Length - 4);
결론
위의 내용을 토대로 예시 소스를 작성하면 다음과 같습니다.
OpenFileDialog myOpenFileDialog = new OpenFileDialog();
myOpenFileDialog.DefaultExt = "*.*";
myOpenFileDialog.InitialDirectory = ".";
myOpenFileDialog.Filter = "exe files (*.exe)|*.exe|All files (*.*)|*.*";
myOpenFileDialog.FilterIndex = 1;
myOpenFileDialog.RestoreDirectory = true;
if (myOpenFileDialog.ShowDialog() == DialogResult.OK)
{
// 사용자가 선택한 파일의 전체 경로를 가져옵니다.
string strProgrampath = myOpenFileDialog.FileName;
// 선택한 파일의 확장자를 제외한 이름을 가져옵니다.
string strProgram = myOpenFileDialog.SafeFileName.Substring(0,myOpenFileDialog.SafeFileName.Length - 4);
}
OpenFileDialog를 활용하면 사용자에게 파일 선택의 편의성을 제공할 수 있습니다. 기본 설정을 통해 선택 가능한 파일 유형이나 초기 디렉토리를 지정할 수 있고, 선택된 파일의 정보를 다양한 방식으로 가져올 수 있습니다. C#에서 파일 관련 작업을 할 때 OpenFileDialog는 꼭 알아두면 좋은 기능 중 하나입니다.
'Language > C# WPF' 카테고리의 다른 글
[WPF] BitmapImage로 이미지 파일(image file load) 읽기 (0) | 2024.02.07 |
---|---|
[C#] .net 혼합모드 어셈블리 런타임의 버젼 오류 해결 및 app.config 추가방법 (0) | 2023.12.05 |
C# 콘솔 창 실행 시 입력 대기하여 꺼지지 않도록 하기 (0) | 2023.09.09 |
[C#] FindWindow(), FindWindowEx()를 이용한 윈도우 창 찾기 (0) | 2023.09.05 |
[C#] 문자열에서 원하는 위치의 글자만 가져오기 (0) | 2023.08.28 |