您的位置:首页 > 其它

MFC中 如何判断一个字符串是否是有效的目录 或盘符

2015-07-28 13:34 567 查看
[cpp] view
plaincopyprint?

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;

}

这种方法最简单,却能实现判定文件目录和 盘符
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: