CSDN博客

img ccl3311

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

发表于2008/9/28 15:34:00  11515人阅读

分类: 技术文章

在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 0

相关博文

我的热门文章

img
取 消
img