c++循环创建多级目录

来源:互联网 发布:html2canvas.js 转jpg 编辑:程序博客网 时间:2024/06/05 14:30

今天项目中遇到了创建文件的需求,发现C++创建文件并不像java那样简单,所以在网上找了找相关的内容。记录下来,方便以后用到。

c++中创建文件需要调用系统接口,所以不同的系统会有不同的实现方式。在windows下可以调用<direct.h>文件中的_mkdir(char* a);而linux下则是<sys/stat.h>下的int mkdir(const char *path, mode_t mode)方法。

#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)#endifint 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;}
参考http://blog.csdn.net/mafuli007/article/details/7430730

1 0
原创粉丝点击