Programming/▷ C

[C] 파일 or 디렉토리 식별

Gyeongje 2017. 10. 24. 00:30

[파일 디렉토리 식별 예시 코드]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#pragma warning ( disable : 4996 )
#include <stdio.h>
#include <io.h>        
 
int isFileOrDir(char* s);
 
int main(void) {
    char* filename = "C:\\test";
 
    int result = isFileOrDir(filename);
 
    if (result == 1)
        puts("파일입니다.");
    
    else if (result == 0)
        puts("디렉토리입니다.");
    else    //result == -1 
        puts("그런 파일 또는 디렉토리는 없습니다.");
 
    return 0;
}
 
int isFileOrDir(char* s) {
    _finddatai64_t c_file;
    intptr_t hFile;
    int result;
 
 
    if ((hFile = _findfirsti64(s, &c_file)) == -1L)
        result = -1// 파일 또는 디렉토리가 없으면 -1 반환
    else
        if (c_file.attrib & _A_SUBDIR)
            result = 0// 디렉토리면 0 반환
        else
            result = 1// 그밖의 경우는 "존재하는 파일"이기에 1 반환
 
    _findclose(hFile);
    return result;
}
cs