본문 바로가기
C 언어

C언어로 현재 폴더의 모든 텍스파일 처리하기

by treeCoder 2020. 12. 31.

현재 폴더에서 텍스 파일에 대해서만 처리하고 싶은 일이 있을 수가 있다.

 

opendir 함수를 써서 코딩하는 방법도 있지만, 여기서는 그냥 C 언어에서 지원하는 system 명령어의 기능을 이용하여

command line 상에 명령을 입력하여 file list를 만들고, 그 파일 리스트를 읽어서 그 하나하나에 대해서

프로그램하는 것으로 하였다. 여기서는 그일을 텍스트 파일의 이름을 출력하는 것으로 단순화 했다.

 

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main( ) { char buf[256]; char cmd[256]; FILE *fp; 

    char fSpec[] = "*.txt";
    char fNmae[] = "__fileList__";

    cmd[0]='\0'; sprintf(cmd, "dir/b %s > %s",fSpec, fNmae); system(cmd);
    
    fp = fopen("__fileList__", "r");

    while( fgets( buf, sizeof(buf), fp ) != NULL ) {
           buf[ strcspn(buf, "\n") ] = '\0';
           puts(buf);  // <-- 이 부분을 다른 일을 함수로 사용자가 변경할 수 있다.
    }

    fclose(fp);

    cmd[0]='\0'; sprintf(cmd, "del %s", fNmae); system(cmd);
    
    return 0;
}

 

실행 결과는 아래와 같다.

 

댓글