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

  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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值