본문 바로가기

카테고리 없음

[C언어] 파일검색 예제 - _findfirst(). _findnext(), _findclose

void main()
{
	struct _finddata_t fd;
	long handle;
	int result = 1;

	handle = _findfirst("c:\\*.*", &fd);
	if(handle == -1)return;
	while (result != -1)
	{
		printf("파일명 : %s, 크기:%d\n", fd.name, fd.size);
		result = _findnext(handle, &fd);
	}
	_findclose(handle);
}

프로그램 실행화면


long _findfirst( char *filespec, struct _finddata_t *fileinfo );


int _findnext( long handle, struct _finddata_t *fileinfo );


int _findclose( long handle );


struct _finddata_t {

    unsigned    attrib;

    time_t      time_create;    /* -1 for FAT file systems */

    time_t      time_access;    /* -1 for FAT file systems */

    time_t      time_write;

    _fsize_t    size;

    char        name[260];

};


파일검색 프로그램 치고는 프로그램이 길지 않아서 이해하는데 어려움은 없을 것이라 생각된다. findfirst()로 첫 파일검색 조건을 준다.


조건에 만족하는 파일이 없으면 -1이 반환된다. 그리고 findnext()함수로 차례차례 불러들이고 마지막으로 findclose()함수로 마무리를 한다.


서브 디렉토리까지 검색을 할려면 재귀 함수를 사용해야 한다. 실력 향상을 위해서 한번 만들어 보는 것도 좋을 것 같다.