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

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


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. 폴더 경로 확인


 

실행 화면 에서 선택 하면
폴더 경로가 들어 온 걸 확인 할 수 있다.

댓글

이 블로그의 인기 게시물

[Python] 파이썬 if문 사용법과 예제

[네트워크] 오류 제어 방식 이란?(FEC, BEC, ARQ)

[Virtual Box] 가상머신 에러 E_FAIL (0x80004005), (VERR_SUPLIB_PATH_NOT_CLEAN) 해결 방법