관리 메뉴

MuTa

폴더내 파일 리스트 가져오기 본문

MFC-C++

폴더내 파일 리스트 가져오기

MuTa 2016. 5. 13. 11:25

http://jangjy.tistory.com/87


// 폴더 브라우저 열어서 폴더명 가져오기
	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);
			}
			//읽어온 파일 이름을 리스트박스에 넣음
		}
	}
	


'MFC-C++' 카테고리의 다른 글

C++ 11 핵심  (0) 2016.05.16
시스템 현재 코어 개수 구하기  (0) 2016.05.13
Visual C++ Tips & Tricks  (0) 2016.05.13
3차원 vector c++11  (0) 2016.05.11
CString Parsing  (0) 2016.05.11