프로그래밍/공부관련

CFileDialog를 사용하여 경로만 가져오는 방법

감자1호 2010. 3. 23. 19:16

CFileDialog 자체에서 폴더명만 가져올 수 있는 방법은 없습니다.

 

다만 해당 Dialog를 OFN_EXPLORER 를 사용해서 Folder를 선택하는 File Dialog로 생성하게 되면

 

폴더를 선택할 수 있습니다.

 

하지만 이 예에서 파일의 경로를 읽어 와서 그 경로를 얻으려고 하는 것 같으니 이 같은 경우에는

 

다음과 같은 방법을 사용하면 됩니다.

 

 

       CString strPathName;

       CString strFileName;

 

        char szFilter[] = "*.*||";

        CFileDialog dlg(TRUE, NULL, NULL, OFN_HIDEREADONLY, szFilter);

        if ( IDOK == dlg.DoModal() )

        {

                    strPathName = dlg.GetPathName();

                    strFileName = dlg.GetFileName();

        }

       cout << strPathName << endl;

       cout << strFileName << endl;

 

       strPathName.TrimRight("\\" + strFileName);

       cout << strPathName << endl;

 

 

CString의 Trim 함수를 사용하면 쉽게 구현할 수 있죠.

========================



이렇게 쓰셔도 될거 같네요


 

CFileDialog 다이얼로그 명(TRUE,NULL,NULL,OFN_OVERWRITEPROMPT,"Excel Files (*.xls)|*.xls");
다이얼로그 명.m_ofn.lpstrInitialDir = "Open할 초기 폴더";

 

ex)

CFileDialog ReportDlg(TRUE,NULL,NULL,OFN_OVERWRITEPROMPT,"Text Files (*.txt)|*.txt");
ReportDlg.m_ofn.lpstrInitialDir = "c:\\abc";
네이버 지식인
http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=1040101&docId=71491996&qb=Q0ZpbGVEaWFsb2c=&enc=utf8&section=kin&rank=2&sort=0&spq=0&pid=fIARSv331xCssbjB6Fsssv--010671&sid=S6iUVJ6DqEsAAGajCU0