创建多级目录
2016-01-14 14:53
375 查看
#include <iostream> #include <stdlib.h> #include <string> #include <string.h> using namespace std; #pragma warning(disable: 4996) #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 *pDir ) { int i = 0; int iRet; int iLen; char* pszDir; if ( NULL == pDir ) { return 0; } int len = strlen( pDir ); pszDir = new char[len+1]; strcpy(pszDir,pDir); iLen = strlen( pszDir ); // 创建中间目录 for ( i = 0; i < iLen; i++ ) { if ( pszDir[i] == '\\' || pszDir[i] == '/' ) { pszDir[i] = '\0'; //如果不存在,创建 iRet = ACCESS( pszDir, 0 ); //参数为0时表示检查文件的存在性,如果文件存在,返回0,不存在,返回-1。 if ( iRet != 0 ) { iRet = MKDIR( pszDir ); //建立新目录 if ( iRet != 0 ) { return -1; } } //支持linux,将所有\换成/ pszDir[i] = '/'; } } iRet = MKDIR( pszDir ); delete[] pszDir; pszDir = NULL; return iRet; } void main() { char* pc = "E:/Save/Game/object/123/abc/1.txt"; cout << "Original: " << pc << endl; string name( pc ); int iPonit = name.find( "Game" ); name.insert(iPonit,"ResBak/"); int i = name.find_last_of("/"); name = name.substr(0,i); cout << "Name: " << name << endl; const int len = name.length(); pc = NULL; pc = new char[len + 1]; strcpy( pc, name.c_str() ); cout << "Pc: " << pc << endl; int Result = CreatDir( pc ); delete[] pc; pc = NULL; system( "pause" ); }
相关文章推荐
- 备忘提醒工具
- 监听器模式和观察者模式 的区别
- oracle 错误代码一览表
- 安装eclipse并汉化
- linux进程调度1_设计思想
- Java书写规范
- 【总结】MyCat分布式数据库中间件
- 通常大家都是用UITableView的两种形式,UITableViewStylePlain,UITableViewStyleGrouped; 其实还有一种类似系统 自带通讯录的那种 Section
- 使用tcpdump观察DNS通信过程
- JavaScript 中 的等号(==)/不等号(!=) 和全等号(===)/非全等号(!==) 的用法
- 微信企业付款接口API
- 那些年我们一起犯二的青春--IGRSS--2015--1th
- VC++ 通过剪切板获得文档中的图片
- redis安装与配置笔记
- 关于有他表关联的字段,赋值时候存在的字符转数字错误的解决方法
- 【总结】Netty(RPC高性能之道)原理剖析
- Matlab转C++项目中遇到的问题
- Reporting Graphics Memory-Calculating Graphics Memory
- [Python] MySQLdb(即 MySQL-python 包)在 OS X 中安装指南
- Hibernate常用Annotation标签说明