posted by 초식사자 2011.07.04 12:45
-인자로 전달된 디렉토리 경로로부터 파일을 탐색한다.
ex:)SearchFile("C:\\*.*");
//C드라이브의 모든 파일을 탐색한다.

#include <windows.h>
#include <stdio.h>
#include <io.h>

#define BUFSIZE 512

void SearchFile(char* pPath){
        struct _finddatai64_t c_file;
        intptr_t hFile;
        char dirPath[BUFSIZE];
        char tempPath[BUFSIZE];
        int i;

        //디렉토리 경로명만 추출하는 작업(현재 경로명에서 *.* 제거)
        strncpy(dirPath,pPath,BUFSIZE-1);
        i=strlen(dirPath)-4;
        dirPath[i]=0;

        //파일 탐색 시작
        hFile=_findfirsti64(pPath,&c_file);

        if(hFile == -1L){
                return;
        }

        while(_findnexti64(hFile,&c_file) == 0){

                // . .. 디렉토리 건너 뛰기
                if(!strcmp(c_file.name,".") || !strcmp(c_file.name,"..")){
                        continue;
                }

                //디렉토리 발견시 파일 탐색 함수 재귀호출
                if(c_file.attrib & _A_SUBDIR){
                        sprintf(tempPath,"%s/%s/*.*",dirPath,c_file.name);
                        tempPath[BUFSIZE-1]=0;
                        SearchFile(tempPath);
                        continue;
                }

                //파일 경로+파일명 프린트 (용도에 따라 적절히 변경 후 사용)
                sprintf(tempPath,"%s/%s",dirPath,c_file.name);
                tempPath[BUFSIZE-1]=0;
                puts(tempPath);
        }
       
}



'프로그래밍 > C/C++' 카테고리의 다른 글

레지스트리 값 출력하기  (0) 2011.07.04
윈도우 서비스 제거하기  (0) 2011.07.04
파일 탐색하기  (0) 2011.07.04
호스트 IP 주소 얻기  (0) 2011.07.04
파일 다운로드 하기  (0) 2011.07.04
시스템 드라이브 목록 얻기  (0) 2011.07.04

댓글을 달아 주세요