C언어] 파일인지 디렉토리인지 여부 판단 함수; is File or Dir
Tuesday, April 03, 2007
스폰서 링크가령, 같은 COOL 이라는 이름을 가지고 있어도 그것이 파일일 수도 있고 디렉토리일 수도 있습니다. 디스크에 있는 어떤 대상이 파일인지 디렉토리(폴더)인지 알아내는 방법이 필요합니다. 다음의 isFileOrDir() 함수로 판단할 수 있습니다.
isFileOrDir("패스") 함수는, 파일이면 1을, 디렉토리면 0을, 그런 이름의 파일이나 디렉토리가 없다면 -1을 반환합니다.
소스 파일명: example.cpp
▶▶ C언어] 파일 존재 여부 판단, 디렉토리 있는지? 함수; Is File Directory Exists
isFileOrDir("패스") 함수는, 파일이면 1을, 디렉토리면 0을, 그런 이름의 파일이나 디렉토리가 없다면 -1을 반환합니다.
파일과 디렉토리 구분 예제
소스 파일명: example.cpp
#include <stdio.h>
#include <io.h>
// 파일인지 디렉토리인지 판단 함수
int isFileOrDir(char* s);
int main(void) {
char* filename = "COOL";
int result = isFileOrDir(filename);
if (result == 1)
puts("파일입니다.");
else
if (result == 0)
puts("디렉토리입니다.");
else
if (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;
}
#include <io.h>
// 파일인지 디렉토리인지 판단 함수
int isFileOrDir(char* s);
int main(void) {
char* filename = "COOL";
int result = isFileOrDir(filename);
if (result == 1)
puts("파일입니다.");
else
if (result == 0)
puts("디렉토리입니다.");
else
if (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;
}
▶▶ C언어] 파일 존재 여부 판단, 디렉토리 있는지? 함수; Is File Directory Exists
더 읽기:
☞ C언어 | C/C++ (Visual C++)
Post a Comment
<< Home