vc判断文件夹是否存在,及创建一个文件夹

在vc下判断一个文件夹是否存在,如果不存在则 创建这个文件夹,代码如下:
  1. bool DirExist(const TCHAR  *pszDirName)   
  2. {   
  3.     WIN32_FIND_DATA   fileinfo;   
  4.     TCHAR   _szDir[_MAX_PATH];   
  5.     _tcscpy(_szDir,pszDirName);   
  6.     int nLen  =  _tcsclen(_szDir);   
  7.     if((_szDir[nLen-1] == '//') || (_szDir[nLen-1] == '/'))   
  8.     {   
  9.         _szDir[nLen-1] = '/0';   
  10.     }   
  11.     HANDLE hFind  = ::FindFirstFile(_szDir,&fileinfo);   
  12.     if(hFind == INVALID_HANDLE_VALUE)   
  13.     {   
  14.         return false;   
  15.     }   
  16.     if(fileinfo.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY)   
  17.     {   
  18.         ::FindClose(hFind);   
  19.         return true;   
  20.     }   
  21.     ::FindClose(hFind);   
  22.     return false;   
  23. }   
  24. bool CreateDir(const TCHAR  *pszDirName)   
  25. {   
  26.     bool bRet = false;   
  27.     TCHAR _szDir[_MAX_PATH];   
  28.     TCHAR _szTmp[_MAX_DIR];   
  29.     int nLen = 0;   
  30.     int idx;   
  31.     if((DirExist(pszDirName)) == true)   
  32.         return true;   
  33.     _tcscpy(_szDir,pszDirName);
  34.     nLen   =   _tcslen(_szDir);   
  35.     if(_szDir[nLen-1] == '//' || _szDir[nLen-1] == '/')   
  36.     {   
  37.         _szDir[nLen-1] = '/0';   
  38.     }   
  39.     nLen = _tcslen(_szDir);   
  40.     memset(_szTmp,0,_MAX_DIR);   
  41.     TCHAR _str[2];   
  42.     for(idx = 0;idx < nLen;idx++)   
  43.     {   
  44.         if(_szDir[idx] != '//')   
  45.         {   
  46.             _str[0] = _szDir[idx];   
  47.             _str[1] = 0;   
  48.             _tcscat(_szTmp,_str);   
  49.         }   
  50.         else   
  51.         {   
  52.             bRet = ::CreateDirectory(_szTmp,NULL);   
  53.             if(bRet)   
  54.             {   
  55.                 ::SetFileAttributes(_szTmp,FILE_ATTRIBUTE_NORMAL);   
  56.             }   
  57.             _str[0] = _szDir[idx];   
  58.             _str[1] = 0;   
  59.             _tcscat(_szTmp,_str);   
  60.         }   
  61.         if(idx == nLen-1)   
  62.         {   
  63.             bRet = ::CreateDirectory(_szTmp,NULL);   
  64.             if(bRet)   
  65.             {   
  66.                 ::SetFileAttributes(_szTmp,FILE_ATTRIBUTE_NORMAL);   
  67.             }   
  68.         }   
  69.     }   
  70.     if(DirExist(_szTmp))   
  71.         return   true;   
  72.     return   false
  73. }  
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值