GSI

다음 소스 프로그램은 현재 디렉토리의 모든 서브 디렉토리에 있는 파일을 찾아서 파일 이름을 모두 소문자로 바꾸는 루틴입니다. 자세한 내용은 각 함수별로 도움말을 참조하기 바랍니다.

void lookup()
{
    char new_filename[100];
    int leng;
    struct _finddata_t c_file;
    long hFile;
    int temp = 0;

    if ((hFile = _findfirst("*.*",&c_file)) == -1L) {
     cout << "error" << endl;
    }

    for (; temp == 0; temp = _findnext(hFile,&c_file)){
        leng = strlen(c_file.name);
        if ((c_file.attrib & _A_SUBDIR) == _A_SUBDIR){
            if (c_file.name[0] != '.'){
                _chdir(c_file.name);
                lookup();
                _chdir("..");
            }
        continue;
        }
        else if ((c_file.attrib & _A_ARCH) != _A_ARCH) continue;
        for(int i = 0;i < leng;i++){
            new_filename[i] = tolower(c_file.name[i]);
        }
        new_filename[i] = '\0';
        rename(c_file.name, new_filename);
    }
    _findclose(hFile);
}

Posted by gsi
: