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

来源:互联网 发布:linux mldonkey 编辑:程序博客网 时间:2024/05/16 16:55
[cpp] view plaincopyprint?
  1. MFC中如何判断一个字符串是否是合法目录或盘符呢,网上的方法倒是不少,不过大多长篇大论,探讨的太深了,问题越搞越复杂了,今天就将我的收获分享  
  2. 第一种:  
  3. WIN32_FIND_DATA wfd;  
  4. FindFirstFile(sPath,&wfd);  
  5. if((wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) == FILE_ATTRIBUTE_DIRECTORY )  
  6. {  
  7.        printf("it is a dir");  
  8. }  
  9. 这种方法只能判定文件目录,诸如D:\软件部相关\GenetecSDK 像盘符目录 D:\ 却判定不出来  
  10. 第二种  
  11. //创建一个指定的全路径目录,失败就返回false    
  12.     TCHAR* fullPath = _tfullpath (NULL, sPath, 0);    
  13.     if (fullPath == NULL)       
  14.           return false;     
  15.     //通过设置fullPath为默认目录来检测是否存在  
  16.     Check if directory exists by trying to make it the default directory    
  17.     TCHAR szCurrDir[_MAX_PATH];    
  18.     _tgetcwd(szCurrDir, _MAX_PATH-1); //返回当前工作目录   
  19.     long nStatus = _tchdir(fullPath); //改变当前工作目录   
  20.     _tchdir(szCurrDir); //返回    
  21.     free(fullPath);        
  22.     if (nStatus == 0)       
  23.           return true;    
  24.     return false;  
  25.   
  26. 这种的功能和上面一样  
  27. 第三种  
  28. if (PathIsDirectory(strPth) || PathIsRoot(strPth))  
  29.  {  
  30.   return TRUE;  
  31.  }  
  32.  else  
  33.  {  
  34.   return FALSE;  
  35.  }  
  36. 这种方法最简单,却能实现判定文件目录和 盘符  
0 0
原创粉丝点击