http://imagej.tistory.com/category/Language?page=4
VS2010에서 작성할 때
빨간줄은 사라졌는데 실행이 잘 되는지는 모르겠다
CString은 출력할 때
wprintf(L"%s", 출력할 것 );
이런 식으로 해야 나오나 보다.
#include <afx.h> //CFileFind
#include <string>
using namespace std;
int main (){
CFileFind cFileFinder; // CFileFind객체선언
BOOL End_Of_Folder = false; // 폴더의 끝인가를 검사
CString m_strSelectPath;
CString Path ="C:/Users/hyunok/Desktop/설명.DB_TXT/image";
//string에서 CString으로 바꿈
WIN32_FIND_DATA findFileData;
HANDLE hFileHandle;
m_strSelectPath = m_strSelectPath + "\\*.*";
cFileFinder.FindFile(Path); // 폴더를 검색해서 File을 찾은
End_Of_Folder = cFileFinder.FindNextFile(); //파일의 끝인지를 검사
//이걸 먼저 해주지 않고 바로 CFileFind::IsDirectory()를 호출하면 에러남
while(End_Of_Folder) //파일의 끝이 아니면 루푸를 돈다.
{
//다음 폴더가 있는지를 검사
End_Of_Folder = cFileFinder.FindNextFile();
//이걸 마지막에 하면 마지막 폴더가 검색 안됨
if(cFileFinder.IsDirectory())//현재 검색한 경로의 파일이 디렉토리인지 검사
{
if(cFileFinder.IsDots()) continue;
//[.][..]와 같은 상위폴더로 가는 루트가 나오면 다시
CString lowPath = cFileFinder.GetFilePath(); //검색된 folder의 Path를 가졍ㄴ다.
lowPath = lowPath + "\\*.bmp";//하위폴더에 원하는 확장자를 추가
//기존ForderSearch와 동일한 코드.
//우선 folder내의 첫번째 File을 검색해서 핸들을 받아온다.
hFileHandle = FindFirstFile(lowPath,&findFileData);
int tempFileCount = 0;
if(hFileHandle != INVALID_HANDLE_VALUE)//원하는 파일이 있다면
{
tempFileCount ++; //FIle의 수를 count
while(FindNextFile(hFileHandle,&findFileData))//다음File검사
{
tempFileCount++;
}
FindClose(hFileHandle); // folder를 닫음
}
//부가기능 . 아래 코드는 folder의 개수와 file의 개수를 count한다.
//몇개가 될지 모르니까 동적으로 할당해 처리
int k = 0;
if( k==0 && tempFileCount != 0){
k++;
int *i = new int[k] ;
//i = new int[k];
i[0] = tempFileCount;
}
else if(k != 0 && tempFileCount != 0 )
{
int * i = new int[k * 1];
int *temp;
temp = i;
for (int j = 0; j < k; j++){
i[j] = temp[j];
}
i[k] = tempFileCount;
delete []temp;
k++;
}
//다음 폴더가 있는지 검사
//End_Of_Folder = cFileFinder.FIndNextFile();
}
}
}
'차근차근 > C' 카테고리의 다른 글
[MFC] 디렉토리 존재 유무 확인/디렉토리내 파일 검색 (0) | 2014.09.04 |
---|---|
Windows CE CFileFind (0) | 2014.09.04 |
하위디렉토리명 가져오기.. (0) | 2014.09.03 |
c삭제 명령어? (0) | 2014.09.03 |
[MFC] 현재 디렉토리 읽어오기 (0) | 2014.09.03 |