详解C++循环创建多级目录及判断目录是否存在的方法
2016-03-12 15:05
846 查看
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; }
您可能感兴趣的文章:
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- 关于指针的一些事情
- c++ primer 第五版 笔记前言
- share_ptr的几个注意点
- 文件、目录,文本文件等多种操作类
- 可折叠展开的简单目录实现代码
- 路由器安全有关的目录
- PowerShell移动目录中指定文件的方法(非全部文件)
- Lua中调用C++函数示例
- Lua教程(一):在C++中嵌入Lua脚本
- Lua教程(二):C++和Lua相互传递数据示例
- C#常用目录文件操作类实例
- C#使用Directoryinfo类获得目录信息和属性的方法
- c#操作iis根目录的方法
- C++联合体转换成C#结构的实现方法
- C#获取目录最后访问时间的方法
- C#实现最完整的文件和目录操作类实例
- C++高级程序员成长之路
- C++编写简单的打靶游戏
- C++ 自定义控件的移植问题