메뉴 바로가기

서브메뉴 바로가기

본문 바로가기

logo

C/C++/MFC

FILE 파일명만 얻어오기

2006.05.23 13:36

WAT_운영자 조회 수:14880

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

void FindFileExist(char *);

void main(void)
{
    char path[MAX_PATH];

    GetCurrentDirectory(MAX_PATH, path); <-- 다른 의도는 없습니다. 그냥.. 현재 디렉토리를 얻기 위해서 사용 했습니다. 만약... 현재 디렉토리가 아니라 특정 디렉토리를 원하신사면... 그 디렉토리를 적어 주면 되겠죠? ^^a
    strcat(path, \"\\\\*.*\");

    FindFileExist(path);

}

void FindFileExist(char *path)
{
    HANDLE                hSrch;
    WIN32_FIND_DATA        wfd;
    char                fname[MAX_PATH];
    short int            bFlag = 1;
    char                drive[_MAX_DRIVE];
    char                dir[MAX_PATH];
    char                newpath[MAX_PATH];

    hSrch = FindFirstFile(path, &wfd);

    while( bFlag ) {
        _splitpath(path, drive, dir, NULL, NULL);
        if( wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
            if( wfd.cFileName[0] != \'.\' ) {
                wsprintf(newpath, \"%s%s%s\\\\*.*\", drive, dir, wfd.cFileName);
                FindFileExist(newpath);  <-- 재귀호출을 하면 하위 디렉토리 파일까지 모두 검색 할 수 있습니다.
            }
        } else {
            wsprintf(fname, \"%s%s%s\", drive, dir, wfd.cFileName);
            printf(\"%s\\n\", fname);
        }

        bFlag = FindNextFile(hSrch, &wfd);
    }

    FindClose(hSrch);
}