MFC-C++
폴더내 파일 리스트 가져오기
MuTa
2016. 5. 13. 11:25
// 폴더 브라우저 열어서 폴더명 가져오기 ITEMIDLIST *pidlBrowse; CString strPath; BROWSEINFO BrInfo; BrInfo.hwndOwner = GetSafeHwnd(); BrInfo.pidlRoot = NULL; memset(&BrInfo, 0, sizeof(BrInfo)); BrInfo.pszDisplayName = (LPWSTR)(LPCTSTR)strPath; BrInfo.lpszTitle = _T("전체 이미지가 들어 있는 폴더를 선택해 주십시오."); BrInfo.ulFlags = BIF_RETURNONLYFSDIRS; // 다이얼로그 띄우기 pidlBrowse = SHBrowseForFolder(&BrInfo); TCHAR szPathName[200]; ::SHGetPathFromIDList(pidlBrowse, szPathName); CString strTmpPath = (LPCTSTR)szPathName; strTmpPath += _T("\\*.*"); //검색 클래스 CFileFind finder; //CFileFind는 파일, 디렉터리가 존재하면 TRUE 를 반환함 BOOL bWorking = finder.FindFile(strTmpPath); // CString fileName; CString DirName; vector<CString> vstrTemp; while (bWorking) { //다음 파일 / 폴더 가 존재하면다면 TRUE 반환 bWorking = finder.FindNextFile(); //파일 일때 if (finder.IsArchived()) { //파일의 이름 CString _fileName = finder.GetFileName(); // 현재폴더 상위폴더 썸네일파일은 제외 if (_fileName == _T(".") || _fileName == _T("..") || _fileName == _T("Thumbs.db")) continue; if (_fileName.Find(_T(".jpg"))) { vstrTemp.push_back(_fileName); } //읽어온 파일 이름을 리스트박스에 넣음 } }