Tuesday, April 03, 2007
C언어] 파일인지 디렉토리인지 여부 판단 함수; is File or Dir
가령, 같은 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
tag: cpp
C언어 | C/C++ (Visual C++)
<< Home