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

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;
 }
这种方法最简单,却能实现判定文件目录和 盘符


你可能感兴趣的:(工作,File,null,mfc,Path)