// 파일의 존재여부 확인
// 파라미터
//nFlag = 1 (=default)이면 파일, 2이면 디렉토리인지, 0이면 파일 및 디렉토리를 검색
BOOL isExists(const char* fname, int nFlag)
{
if(fname == NULL)
return FALSE;
DWORD attr = GetFileAttributes(fname);
#ifdef _DEBUG_LOG
//CString str;
//str.Format("%s = 0x%x (file?%d, dir?%d)", fname, attr,((attr & FILE_ATTRIBUTE_DIRECTORY) == 0), ((attr & FILE_ATTRIBUTE_DIRECTORY) != 0));
//MessageBox(NULL, str, "OK", MB_OK);
#endif
switch(nFlag)
{
case 0:
return (attr != 0xFFFFFFFFL);
break;
case 1:// 파일인지의 여부
if(attr != 0xFFFFFFFFL)
return ((attr & FILE_ATTRIBUTE_DIRECTORY) == 0);
break;
case 2:// 디렉토리인지의 여부
if(attr != 0xFFFFFFFFL)
return ((attr & FILE_ATTRIBUTE_DIRECTORY) != 0);
break;
}
return FALSE;
}
int isFileExists(char* s)
{
_finddatai64_t c_file;
intptr_t hFile;
int result = 0;
if ( (hFile = _findfirsti64(s, &c_file)) == -1L )
result = 0; // 파일 없으면 거짓 반환
else
if (c_file.attrib & _A_SUBDIR) result = 0; // 있어도 디렉토리면 거짓
else
result = 1; // 그밖의 경우는 "존재하는 파일"이기에 참
_findclose(hFile);
return result;
}
int isDirExists(char* s)
{
_finddatai64_t c_file;
intptr_t hFile;
int result = 0;
hFile = _findfirsti64(s, &c_file);
if (c_file.attrib & _A_SUBDIR ) result = 1;
_findclose(hFile);
return result;
}
출처: https://use1348.tistory.com/11 [유용한 정보:티스토리]
'유용한 정보' 카테고리의 다른 글
[Windows]소켓에러 목록 (0) | 2024.12.26 |
---|---|
[C++]CListCtrl 제어 (0) | 2024.12.26 |
[C++]pragma pack 에 대해서... (0) | 2024.12.25 |
[MFC] Dialog 기반 ActiveX 만들기 (0) | 2024.12.25 |
[C++]VC2008에서 프로젝트 속성 매크로 변경/적용하는 방법 (0) | 2024.12.25 |