본문 바로가기
프로그래밍 언어/C#

[C#] OpenFileDialog를 이용하여 파일 불러오기

by Jinwood 2021. 4. 13.
반응형

OpenFileDialog는 System.Windows.Forms 네임스페이스에서 사용할 수 있는 클래스이다. OpenFileDialog 인스턴스를 생성한 뒤 필요한 설정(확장자, 초기 디렉터리, 복수 선택 허용 등)을 적용한 뒤 ShowDialog()를 통해 Dialog를 표시한다.

 

아래 코드는 이미지 파일을 로드하는 코드이다.

OpenFileDialog를 통해 파일을 Load 한 뒤에는 반드시 Dispose()를 통해 리소스를 해제해야 한다.

 

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
42
43
44
45
46
47
try
{
    //인스턴스 생성
    OpenFileDialog ofd = new OpenFileDialog();    
    
    // 사용할 필터(확장자) 설정
    List<string> filterList = new List<string>
                              "Bitmap(*.bmp, *dib)|*.bmp;*.dib;",                                        
                              "|JPEG(*.jpg, *.jpeg, *.jpe, *.jfif)|*.jpg; *.jpeg; *.jpe; *.jfif;"
                              "|TIFF(*.tif, *.tiff)|*.tif; *.tiff;""|GIF(*.gif)|*.gif"
                              "|PNG(*.png)|*.png;" };
 
    // 필터(확장자 적용)
    foreach (string filter in filterList) 
    { ofd.Filter += filter; }
    
    // 또는 아래와 같이 한꺼번에 Supported Image File로 표시할 수 있다.
    //ofd.Filter = "Supported Image File|*jpg;*.jpeg;*.bmp;*.png;*.dib;*.gif;*.tif;";
 
    ofd.AddExtension = false;                    // 확장자 자동 추가
    ofd.CheckFileExists = true;                  // 파일 존재하지 않을 경우 메시지 표시 여부
    ofd.CheckPathExists = true;                  // 경로 존재하지 않을 경우 메시지 표시 여부    
    ofd.Multiselect = false;                     // 복수 선택
        
    ofd.ShowHelp = true;                         // Help 버튼 표시 여부
    ofd.ShowReadOnly = false;                    // 읽기 전용 체크박스 표시 여부
    ofd.ReadOnlyChecked = false;                 // 읽기 전용항목 체크 여부
    ofd.SupportMultiDottedExtensions = true;     // 여러개의 확장자를 표시하는지 여부(저장시 또한)
    ofd.Title = "Select an image...";            // 타이틀 표시
    ofd.ValidateNames = true;                    // 파일명의 유효성 검증
    
    //초기 디렉터리 -> 바탕화면으로 설정
    ofd.InitialDirectory = System.Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);    
    
 
    if (ofd.ShowDialog() == DialogResult.OK)    // 다이얼로그 표시
    {
        //Do Something
    }
 
    ofd.Dispose(); // OpenFileDialog 리소스 해제
}
catch(Exception err)
{
    MessageBox.Show(err.ToString(), "Sample");
}
 
cs

 

위와 같이 코드를 작성하면 아래 그림처럼 다이얼로그가 표시된다.

위 코드처럼 파일 확장자를 개별적으로 추가해야 아래의 파일 형식에서 보이는 것과 같이 각각 표시된다.

 

 

반응형

댓글