首页 > 编程 > C++ > 正文

详解C++循环创建多级目录及判断目录是否存在的方法

2020-05-23 14:07:28
字体:
来源:转载
供稿:网友
这篇文章主要介绍了C++循环创建多级目录及判断目录是否存在的方法,文中代码有一个针对各种系统进行判断来加载不同头文件的方法,需要的朋友可以参考下
 

C++循环创建多级目录

#include "unitfiles.h"  #ifdef WIN32  #include <direct.h> #include <io.h>  #elif LINUX  #include <stdarg.h> #include <sys/stat.h>  #endif  #ifdef WIN32  #define ACCESS _access #define MKDIR(a) _mkdir((a))  #elif LINUX  #define ACCESS access #define MKDIR(a) mkdir((a),0755)  #endif  int CreatDir(char *pszDir) {   int i = 0;   int iRet;   int iLen = strlen(pszDir);    //在末尾加/   if (pszDir[iLen - 1] != '//' && pszDir[iLen - 1] != '/')   {     pszDir[iLen] = '/';     pszDir[iLen + 1] = '/0';   }    // 创建目录   for (i = 0;i <= iLen;i ++)   {     if (pszDir[i] == '//' || pszDir[i] == '/')     {        pszDir[i] = '/0';        //如果不存在,创建       iRet = ACCESS(pszDir,0);       if (iRet != 0)       {         iRet = MKDIR(pszDir);         if (iRet != 0)         {           return -1;         }        }       //支持linux,将所有/换成/       pszDir[i] = '/';     }    }   return 0; } 

根据别人的结果进行了修改,需要注意的问题是参数不是const的,因此可以进行修改。

 C++判断指定目录是否存在

bool IsDirExist(string filename) {   size_t len = filename.length();   if(filename[len-1] != '/' && filename[len-1] != '//')     filename.append("/");   filename.append("000.tmp");   ofstream outf(filename.c_str());   bool flag = outf;   if(outf)   {     outf.close();     remove(filename.c_str());   }   return flag; } 


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表