GUI 프로그램을 개발하다보면, 저장소의 특정 디렉터리를 지정해야 하는 경우가 있다. 본 예시말고도 여러가지 방법이 있었다. 그런데 폴더 탐색/지정/생성등에 있어 아무래도 좀더 편리하기에 CFolderPickerDialog를 사용한 적이 있다. 

     

      MFC에서 [Browse...] 버튼을 만들고 해당 버튼을 다음과 같이  코딩하면 상대적으로 손쉽게 폴더 선택 다이얼로그를 호출할 수 있다.

    void CMyTestDlg::OnBnClickedBtBaseSaveFolder()
    {
         // 폴더 정보 가져오는 기능 - Visual Studio 2010 이상.
         UpdateData(TRUE);
         CFolderPickerDialog Picker(NULL, OFN_FILEMUSTEXIST);
         if (IDOK == Picker.DoModal())
         {
              g_selected_save_directory = Picker.GetFolderPath(); // CString 변수에 넣는다.
         }
         UpdateData(FALSE);
    }

     

    위의 소스에서 폴더 존재 여부를 확인하기 위해서 GetFileAttribute를 넣어주면 좀더 안전하게 사용할 수 있다. 

    // 데이터 저장 폴더 존재 유무 검사
    if (GetFileAttributes(g_selected_save_directory) == -1)
    {
        MessageBox(L"설정된 저장 위치가 올바르지 않습니다.");
        OnBnClickedBtBaseSaveFolder();
        return;
    }

     

    조금이라도 도움이 되었길 바란다.

     

    반응형
    • 네이버 블러그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기