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;
}
조금이라도 도움이 되었길 바란다.
반응형
최근댓글