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

 

  1. #include<iostream>   
  2. #include<windows.h>   
  3. #include <string.h>   
  4.   
  5. using namespace std;  
  6.   
  7. //判断一个文件夹是否存在,如果不存在则创建这个文件夹   
  8. bool DirExist(const TCHAR  *pszDirName)     
  9. {     
  10.     WIN32_FIND_DATA   fileinfo;     
  11.     TCHAR   _szDir[_MAX_PATH];     
  12.     strcpy(_szDir,pszDirName);     
  13.     int nLen  =  strlen(_szDir);     
  14.     if((_szDir[nLen-1] == '//') || (_szDir[nLen-1] == '/'))     
  15.     {     
  16.         _szDir[nLen-1] =(char'/0';//zx   
  17.     }     
  18.     HANDLE hFind  = ::FindFirstFile(_szDir,&fileinfo);     
  19.     if(hFind == INVALID_HANDLE_VALUE)     
  20.     {     
  21.         return false;     
  22.     }     
  23.     if(fileinfo.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY)     
  24.     {     
  25.         ::FindClose(hFind);     
  26.         return true;     
  27.     }     
  28.     ::FindClose(hFind);     
  29.     return false;     
  30. }   
  31.     
  32. bool CreateDir(const TCHAR  *pszDirName)     
  33. {     
  34.     bool bRet = false;     
  35.     TCHAR _szDir[_MAX_PATH];     
  36.     TCHAR _szTmp[_MAX_DIR];     
  37.     int nLen = 0;     
  38.     int idx;     
  39.     if((DirExist(pszDirName)) == true)     
  40.         return true;     
  41.     strcpy(_szDir,pszDirName);  
  42.     nLen   =   strlen(_szDir);     
  43.     if(_szDir[nLen-1] == '//' || _szDir[nLen-1] == '/')     
  44.     {     
  45.         _szDir[nLen-1] = (char)'/0';   //zx   
  46.     }     
  47.     nLen = strlen(_szDir);     
  48.     memset(_szTmp,0,_MAX_DIR);     
  49.     TCHAR _str[2];     
  50.     for(idx = 0;idx < nLen;idx++)     
  51.     {     
  52.         if(_szDir[idx] != '//')     
  53.         {     
  54.             _str[0] = _szDir[idx];     
  55.             _str[1] = 0;     
  56.             strcat(_szTmp,_str);     
  57.         }     
  58.         else     
  59.         {     
  60.             bRet = ::CreateDirectory(_szTmp,NULL);     
  61.             if(bRet)     
  62.             {     
  63.                 ::SetFileAttributes(_szTmp,FILE_ATTRIBUTE_NORMAL);     
  64.             }     
  65.             _str[0] = _szDir[idx];     
  66.             _str[1] = 0;     
  67.             strcat(_szTmp,_str);     
  68.         }     
  69.         if(idx == nLen-1)     
  70.         {     
  71.             bRet = ::CreateDirectory(_szTmp,NULL);     
  72.             if(bRet)     
  73.             {     
  74.                 ::SetFileAttributes(_szTmp,FILE_ATTRIBUTE_NORMAL);     
  75.             }     
  76.         }     
  77.     }     
  78.     if(DirExist(_szTmp))     
  79.         return   true;     
  80.     return   false;   
  81. }   
  82.   
  83.   
  84. int main()  
  85. {   
  86. char Dir[]="F:\\123";   
  87.   
  88. if(false==DirExist("Dir"))//查看F盘下是否存在名为123的文件夹   
  89. {  
  90.  cout<<"not  find!"<<endl;  
  91.  if(true==CreateDir(Dir))//创建123文件夹   
  92.      cout<<"Create success!"<<endl;  
  93.  else   
  94.      cout<<"create failed!"<<endl;  
  95. }  
  96.   
  97. else  
  98.     cout<<"Find it !"<<endl;  
  99. system("pause");  
  100. return 0;  
  101. }  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值