Windows/C#(Winform)

[c# Winform] 디렉토리의 경로를 다이얼로그로 불러오는 방법.

별빛의온기 2023. 9. 5. 16:04
반응형

c# Winform에서 디렉토리의 경로를 다이얼로그로 불러오는 방법입니다. 

아래 설명하는 기능을 사용하기 위해서는 별도의 패키지를 설치해야 합니다.

 

1. 우선 [도구] - [NuGet 패키지 관리자] - [솔루션용 Nuget 패키지 관리]를 클릭하여 창을 띄우고, 찾아보기에서 

"WindowsAPICodePack" 을 검색합니다. 그리고 아래 사진과 같이 WindowsAPICodePack-Shell을 클릭하여 필요한 프로젝트에 설치합니다.

 

2. 설치를 했으면 설치한 프로젝트의 클래스에 아래 메소드를 씁니다. 

using Microsoft.WindowsAPICodePack.Dialogs;


class example {

    public static CommonFileDialogResult DoSetFolderPathUsingFWindowsAPICodePack(IWin32Window parentwnd, out string strSelectedPath)
    {
        strSelectedPath = "";
        CommonOpenFileDialog dialog = new CommonOpenFileDialog();
        dialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); //기본을 바탕화면으로.. 필요 없으면 삭제해도 무관. 
        dialog.IsFolderPicker = true;
        CommonFileDialogResult dr = dialog.ShowDialog();

        if (dr == CommonFileDialogResult.Ok)
        {
            strSelectedPath = dialog.FileName; 
        }

        return dr;
    }

}

 

3. 그리고 다른 클래스 또는 메소드에서 위 메소드를 호출합니다.


void exampleMethod()
{
    string strFolderPath;
    CommonFileDialogResult dr = example.DoSetFolderPathUsingFWindowsAPICodePack(this, out strFolderPath);
    if (dr == CommonFileDialogResult.Ok)
    {
        //열기에 성공했으면 이곳에 어떻게 할지 추가.
        //아래는 textbox에 경로를 넣었음.
        m_tbLoadFolderPath.Text = strFolderPath; 
    }


}

4. 그 결과 아래와 같이 창이 뜨며 폴더를 선택하면 폴더 경로가 반환됩니다.

 

 

 

 

 

반응형