본문 바로가기
프로그래밍/C·C++

파일 탐색하기

by ITPro 2011. 7. 4.
-인자로 전달된 디렉토리 경로로부터 파일을 탐색한다.
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
호스트 IP 주소 얻기  (0) 2011.07.04
파일 다운로드 하기  (0) 2011.07.04
시스템 드라이브 목록 얻기  (0) 2011.07.04

바로가기