判断目录是否存在
使用CFileFind 类无法判断根目录:
CFileFind fileFind;
CString
m_path = _T("c:\\");
if (fileFind.FindFile(
m_path) == false)//**如果是根目录(c:\,d:\),FindFile返回false;不是根目录则运行正常
{
AfxMessageBox(msg);
return;
}
CFileFind 是对API ::FindFirstFile的封装,直接使用::FindFirstFile也存在无法判断根目录是否存在:
WIN32_FIND_DATA wfd;
HANDLE hFind = FindFirstFile(_T("c:\\"), &wfd);
if (hFind != INVALID_HANDLE_VALUE)
{
//
}
FindClose(hFind);
可以使用IO.h的 _access函数来判断
#include <io.h>//头文件
#ifdef _UNICODE
#define IsDirectoryExist(path) ::_waccess(path,0) == 0
//_waccess的第二个参数表示仅判断存在性,返回0表示存在,返回-1表示不存在
#else
#define IsDirectoryExist(path) ::_access(path,0) == 0//_access是MBCS版本
#endif
使用代码:
if(IsDirectoryExist(_T("c:\\")))
{
//存在
}
也可以使用GetFileAttributes函数,返回 FILE_ATTRIBUTE_DIRECTORY 表示目录存在
if (FILE_ATTRIBUTE_DIRECTORY == GetFileAttributes(_T("c:\\")))
{
//存在
}
PathFileExists函数也可以,这个好,不用写注释
#include <shlwapi.h>//头文件
if (PathFileExists(_T("c:\\")))
{
//存在
}
转载于:https://www.cnblogs.com/yoyolion/archive/2007/05/23/756648.html