CodeSarang.Com
Home | All categories Join | Login | 검색   

 

FindFirstFile 을 이용한 SubDirectory 검색 및 vector 에 넣기

등록자 : cpueblo (유광희), 2008-08-29
글수정 | 글삭제


GetFindFileList(디렉토리명, 필터 (*.exe 등), vector 포인터)

void GetFindFileList(LPCTSTR pszDirectory, LPCTSTR pszFilter, std::vector <std::string> *vtList) { TCHAR buf[_MAX_PATH]; TCHAR buf2[_MAX_PATH]; WIN32_FIND_DATA FindFileData; lstrcpy(buf, pszDirectory); lstrcat(buf, "\\"); lstrcat(buf, pszFilter); HANDLE hHandle=FindFirstFile(buf, &FindFileData); for(;hHandle!=INVALID_HANDLE_VALUE;) { if( ( FindFileData.cFileName[0]!=_T('.') || lstrlen(FindFileData.cFileName)>2) && ( 0 != _stricmp( FindFileData.cFileName, "Replay"))) // Replay 폴더는 지우지 않는다 { lstrcpy(buf,pszDirectory); lstrcat(buf,_T("\\")); lstrcat(buf,FindFileData.cFileName); if(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { GetFindFileList(buf, pszFilter, vtList); } else { // printf("%s\r", buf); vtList->push_back(buf); } } if(!FindNextFile(hHandle,&FindFileData)) break; } FindClose(hHandle); }

Usage

std::vector <std::string> vtFileList; std::vector <std::string>::iterator iter; ... GetFindFileList(szListDir, "*.*", &vtFileList); int FileCount = vtFileList.size(); for ( iter = vtFileList.begin(); iter != vtFileList.end() ; ++iter ) { char *FileName = iter->c_str(); }

Keywords

하위 디렉토리 파일 검색 코드, FindFirst, vector 를 이용한 하위 폴더 검색, 하위 폴더 파일 검색





글수정 | 글삭제
http://codesarang.com. mail to cpueblocpueblo.com