차근차근/C

[MFC] 디렉토리 존재 유무 확인/디렉토리내 파일 검색

예쁜꽃이피었으면 2014. 9. 4. 09:00

http://shyu0303.egloos.com/viewer/1333386


CFileFind란 Class를 사용하면 된다.

CFileFind cFileFinder;
BOOL 
bResult;

// path를 찾음 성공시 TRUE, 실패시 FALSE
bResult = 
cFileFinder.FindFile( path );
// 그 다음 같은 이름의 파일 혹은 디렉토리있으면 TRUE, 없으면 
FALSE
bResult = cFileFinder.FindNextFile(); 

if( 
cFileFinder.IsDirectory() == TRUE )
 MessageBox( "디렉토리 존재함" 
);

FindNextFile을 하지 않고 IsDirectory() 함수를 호출하면 에러가 떠버린다.

아래와 같은 와일드 
카드도 사용할 수 있다.

// C:\\*.*가 있으면 TRUE, 
C:\의 어떤 파일이라도 있으면 TRUE

bResult = cFileFinder.FindFile( 
"C:\\*.*" );
// 바로 
GetFileName하면 NULL에러 발생 아직 파일을 찾은 것은 아님

bResult = cFileFinder.FindNextFile();
MessageBox( cFileFinder.GetFileName() );


첫 번째 파일 이름이 나옴
그 다음은 
FindNextFile()함수를 호출하여 리턴값이 0이 나올때까지 돌리면 된다.
MSDN예제엔 아래와 같이 쓰도록 
되어있다.

bResult = cFileFinder.FindFile( 
"C:\\*.*" )

while( bResult 
)
{
 bResult = cFileFinder.FindNextFile();

 // . 이나 
..이면 다시 돌림

 if( cFileFinder.IsDot() ) continue;

 MessageBox( cFileFinder.GetFileName() )
}

참고 : http://kongmks.cafe24.com/175

반응형

'차근차근 > C' 카테고리의 다른 글

[VC]프로그래밍팁  (0) 2014.09.04
[펌] Win32 API FAQ  (0) 2014.09.04
Windows CE CFileFind  (0) 2014.09.04
상위폴더경로로 하위폴더 검색  (0) 2014.09.03
하위디렉토리명 가져오기..  (0) 2014.09.03