Windows下面判断文件或目录是否存在的一个小函数,避免每次重写,记录在这里。
判断文件是否存在
BOOL CFileUtils::IsFileExist(const CString& fileName)
{
if (fileName.IsEmpty()) {
return FALSE;
}
HANDLE hFile = ::CreateFile(
(LPCTSTR)fileName,
GENERIC_READ,
FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
0);
if (INVALID_HANDLE_VALUE == hFile) {
return FALSE;
}
::CloseHandle(hFile);
return TRUE;
}
判断目录是否存在
BOOL CFileUtils::IsDirExist(const CString& dir_name)
{
BOOL found = FALSE;
WIN32_FIND_DATA wfd;
HANDLE hFind = FindFirstFile (dir_name, &wfd);
if ((hFind != INVALID_HANDLE_VALUE)
&& (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) {
found = TRUE;
}
FindClose(hFind);
return found;
}