转自点击打开链接
MFC中如何判断一个字符串是否是合法目录或盘符呢,网上的方法倒是不少,不过大多长篇大论,探讨的太深了,问题越搞越复杂了,今天就将我的收获分享
第一种:
WIN32_FIND_DATA wfd;
FindFirstFile(sPath,&wfd);
if((wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) == FILE_ATTRIBUTE_DIRECTORY )
{
printf("it is a dir");
}
这种方法只能判定文件目录,诸如D:\软件部相关\GenetecSDK 像盘符目录 D:\ 却判定不出来
第二种
//创建一个指定的全路径目录,失败就返回false
TCHAR* fullPath = _tfullpath (NULL, sPath, 0);
if (fullPath == NULL)
return false;
//通过设置fullPath为默认目录来检测是否存在
Check if directory exists by trying to make it the default directory
TCHAR szCurrDir[_MAX_PATH];
_tgetcwd(szCurrDir, _MAX_PATH-1); //返回当前工作目录
long nStatus = _tchdir(fullPath); //改变当前工作目录
_tchdir(szCurrDir); //返回
free(fullPath);
if (nStatus == 0)
return true;
return false;
这种的功能和上面一样
第三种
if (PathIsDirectory(strPth) || PathIsRoot(strPth))
{
return TRUE;
}
else
{
return FALSE;
}
这种方法最简单,却能实现判定文件目录和 盘符 。需要包含头文件<<span style="color: rgb(42, 42, 42); font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 20px; ">Shlwapi.h</span>>
判断文件路径是否存在
转自点击打开链接