Develop				
			
										2013.04.23 16:13				
				[c++] 디렉토리 내의 파일 찾기 FindFirstFile() 함수
																																			조회 수 22964										댓글 6									
				
							특정 디렉토리 아래에 있는 모든 파일과 디렉토리 혹은 특정 조건의 파일과 디렉토리를 얻고자 한다면, 다음 API 함수를 이용한다. 
HANDLE FindFirstFile(LPCSTR lpFileName, LPWIN32_FIND_DATA finddata);
BOOL FindNextFile(HANDLE hFind, LPWIN32_FIND_DATA finddata);
BOOL FindClose(HANDLE hFind);
FindFirstFile : 파일 검색을 시작한다. 
파일 검색 문자열이 잘못되었거나 다른 이유로 함수 실행이 실패했을 경우 INVALID_HANDLE_VALUE로 Define된 상수값을 반환한다. 성공했을 경우 파일 검색 핸들을 반환하고 두 번째로 전달되는 구조체에 첫 번째로 발견되는 파일의 정보를 넣어준다. 
LPCSTR lpFileName
파일 검색 문자열을 넘겨준다.
예) "c:*.*" 혹은 "c:*.txt"
LPWIN32_FIND_DATA finddata
파일 검색 데이터 구조체의 포인터를 넘겨준다. 
FindNextFile : 다음 파일의 정보를 얻는다. 
함수 실행이 성공하였을 경우 TRUE를, 실패하였을 경우 FALSE를 반환한다. 함수 성공시 두 번째 인자로 전해지는 구조체에 파일의 정보를 넣어준다. 
HANDLE hFind
FindFirstFile이 반환한 파일 검색 핸들을 넘겨준다. 
LPWIN32_FIND_DATA finddata
파일 검색 데이터 구조체의 포인터를 넘겨준다. 
FileClose : 파일 핸들을 닫는다. 
FindFirstFile에 의해 열린 파일 핸들을 닫는다. 성공하였을 경우 TRUE를, 실패하였을 경우 FALSE를 반환한다. 
HANDLE hFind
FindFirstFile이 반환한 파일 검색 핸들을 넘겨준다. 
사용 예
#include <windows.h>
#include <stdio.h>
#include <string.h>
int main()
{
    WIN32_FIND_DATA FindData;
    HANDLE hFind;
    char path[255];
    strcpy(path, "c:windows*");
    
    hFind = FindFirstFile((LPCSTR)path, &FindData);
    if(hFind==INVALID_HANDLE_VALUE)
        return 0;
    
    do{
        printf("%s
", FindData.cFileName);
    }while(FindNextFile(hFind, &FindData));
    FindClose(hFind);
    return 0;
}
- 
		
						?				
		
		
				블로그로 담아가도 되나요?
 - 
				
				
						
		
		
				넵, 당연히 담아가셔도 됩니다.
출처를 함께 남겨주세요^^ㅋ
감사합니다. - 
		
						?				
		
		
				감사합니다~ 근데 댓글 남기기 되게 힘드네요 ;;
 - 
				
				
						
		
		
				앗.. 그래요? ㅠㅠ
그냥 로그인 하지 않아도 입력되게 해두었는데요.
개선해야 할 부분이 있으면 제안해 주시면 적극 반영하겠습니다.
감사합니다.^^ - 
		
						?				
		
		
				매우 잘 보고 갑니다~
c에서는 _finddatai64_t를 사용했었는데 c++에서는 불가능하더라고요
do{}while도 익숙하지 않아서 그냥 while문으로 변경하였습니다.
다행이 FindNextFile이 새로운 파일이 없을땐 0을 반환해서 큰 문제는 없었네요.
종종 들려서 공부하면 좋을것 같네요.
좋은 글 감사합니다~ - 
				
				
						
		
		
				댓글 감사합니다.^^ 
| 번호 | 분류 | 제목 | 글쓴이 | 날짜 | 조회 수 | 
|---|---|---|---|---|---|
| 601 | PPT | 
				
								
					[ppt] 시스템보안 연구실 ppt 템플릿.. (CIST)				
																								 | 
																																										hooni | 2013.04.23 | 22167 | 
| 600 | Etc | 스파이웨어(BHO) 탐지하는 방법.. | hooni | 2013.04.23 | 46632 | 
| 599 | Develop | 
				
								
					OPT와 CAS에 대한 자료.. (교수님 메일로 보내드린 자료..)				
																								 | 
																																										hooni | 2013.04.23 | 15152 | 
| 598 | Develop | 
				
								
					[doc] 테크니컬 레포트 (BHO 취약점을 이용한 공격)				
												2												 | 
																																										hooni | 2013.04.23 | 29520 | 
| 597 | Develop | 
				
								
					[doc] 유료 방송 제어 시스템 (CAS) 발표자료				
																								 | 
																																										hooni | 2013.04.23 | 10826 | 
| 596 | Develop | 
				
								
					[c++] 웹폼(webform)전송과 http 파일 업로드 샘플				
																								 | 
																																										hooni | 2013.04.23 | 35045 | 
| » | Develop | [c++] 디렉토리 내의 파일 찾기 FindFirstFile() 함수 6 | hooni | 2013.04.23 | 22964 | 
| 594 | Develop | 
				
								
					[c++] 가짜 인증서(하나은행) 프로그램				
																								 | 
																																										hooni | 2013.04.23 | 11941 | 
| 593 | Develop | [js] 이미지 사이즈를 동적으로 조절.. | hooni | 2013.04.23 | 8790 | 
| 592 | Develop | 
				
								
					[js] 부모창에서 자식창으로 문자열 전달..				
																								 | 
																																										hooni | 2013.04.23 | 9139 | 
| 591 | Develop | 
				
								
					[c#] 툴바 소스.. 개인적으로 만드는거..				
																								 | 
																																										hooni | 2013.04.23 | 3304 | 
| 590 | Develop | 
				
								
					[php] 그래프 그리는 프로그램..				
																								 | 
																																										hooni | 2013.04.23 | 9239 |