프로그램 개발/C#

[wpf] c# 코드로 폴더 선택하기 - FolderBroswerDialog와CommonOpenDialog

(ㅇㅅㅎ) 2021. 5. 2. 16:29
728x90
반응형

폴더 선택에는 2가지 방법을 사용할 수 있습니다. Form에서 존재하는 FolderBroswerDialog를 사용하거나 NuGet에서 패키지를 설치하여 CommonOpenDialog를 사용할 수 있습니다.

 

1. FolderBroswerDialog

   1) 참조 추가 - 어셈블리 - System.Windows.Forms 추가

   2) 코드 사용

c#
System.Windows.Forms.FolderBrowserDialog fbd = new System.Windows.Forms.FolderBrowserDialog();
if(fbd.ShowDialog() == System.Windows.Forms.DialogResult.OK){
    folder_tb.Text = fbd.SelectedPath;
}

 

2. CommonOpenDialog

   1) Nuget 패키지 - WindowsAPICodePack 설치

   2) 코드 사용

c#
CommonOpenFileDialog cofd = new CommonOpenFileDialog();
cofd.IsFolderPicker = true;
if(cofd.ShowDialog() == CommonFileDialogResult.Ok){
    folder_tb.Text = cofd.FileName;
}

 

 

자세한 사항을 보시려면 더보기를 클릭해 주세요.

 

더보기

화면 구성

화면 구성 모습
xaml
<Grid>
    <StackPanel Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Center">
        <!-- 폴더 경로를 나타낼 텍스트 박스 -->
        <TextBox Name="folder_tb" Width="150"/>
        <!-- 폴더를 선택할 버튼  -->
        <Button Name="select_b" Content="폴더 선택" Click="Button_Click"/>
    </StackPanel>
</Grid>

 

1. FolderBroswerDialog

 

System.Windows.Forms를 참조 추가한 뒤 코드를 사용합니다.

c#
System.Windows.Forms.FolderBrowserDialog fbd = new System.Windows.Forms.FolderBrowserDialog();
if(fbd.ShowDialog() == System.Windows.Forms.DialogResult.OK){
    // 텍스트 박스에 경로 입력
    folder_tb.Text = fbd.SelectedPath;
}

 

2. CommonOpenDialog

CommonOpenDialog 사용 모습

 

NuGet 패키지에서 WindowsAPICodePack을 설치한 뒤 코드를 사용합니다.

c#
CommonOpenFileDialog cofd = new CommonOpenFileDialog();

// 파일 선택이 아닌 폴더 선택하도록 설정
cofd.IsFolderPicker = true;

if(cofd.ShowDialog() == CommonFileDialogResult.Ok){
    // 텍스트 박스에 경로 입력
    folder_tb.Text = cofd.FileName;
}

 

 

 

반응형