MFC

[MFC] 선택한 폴더 경로(Directory) 가져오기 예제

Let it out 2024. 1. 18. 01:42

다이얼로그도 띄어주고 폴더 경로를 가져와 주는 예제다.

 

1. 구현

CString strSelectedFolder;
    ITEMIDLIST  *pidlBrowse;
    TCHAR        pszPathname[MAX_PATH];
    BROWSEINFO  BrInfo;
 
    BrInfo.hwndOwner = GetSafeHwnd();
    BrInfo.pidlRoot = NULL;
    memset( &BrInfo, 0, sizeof(BrInfo) );
 
    BrInfo.pszDisplayName = (LPWSTR)pszPathname;
 
    BrInfo.lpszTitle = L"폴더를 선택해 주십시오.";
    BrInfo.ulFlags = BIF_RETURNONLYFSDIRS;
 
    // 다이얼로그 띄우기
    pidlBrowse = SHBrowseForFolder(&BrInfo);
 
    if( pidlBrowse != NULL)
    {
            // 선택한 폴더경로를 얻어옴
            BOOL bSuccess = ::SHGetPathFromIDListW(pidlBrowse, pszPathname);
 
            if ( bSuccess )
            {
                    strSelectedFolder = pszPathname;   //<-- 여기서 값을 입력
            }
            else
            {
                    MessageBox(L"잘못된 폴더명입니다.", L"", MB_OKCANCEL|MB_ICONASTERISK );
            }
    }

 

 

2. 실행 결과

위에 코드 실행 시 아래 처럼 다이얼로그가 나온다.

3. 폴더 경로 확인

 

위에 그림에서 확인 클릭 후

Visual Studio 로 pszPathname 변수 값을 보면 선택 된 폴더 경로가 저장 된 것을 확인 할 수 있다.

반응형

'MFC' 카테고리의 다른 글

[MFC] Directory 폴더 열기 예제  (0) 2024.01.18
[MFC] TCP/IP Socket 통신 예제  (0) 2024.01.18
[MFC] 리스트 컨트롤(List control) 예제  (0) 2024.01.18