创建多级目录

  1 #include <iostream>
  2 #include <stdlib.h>
  3 #include <string>
  4 #include <string.h>
  5
  6 using namespace std;
  7
  8
  9 #pragma warning(disable: 4996)
 10
 11
 12 #ifdef _WIN32
 13 #include <direct.h>
 14 #include <io.h>
 15 #elif _LINUX
 16 #include <stdarg.h>
 17 #include <sys/stat.h>
 18 #endif
 19
 20 #ifdef _WIN32
 21 #define ACCESS _access
 22 #define MKDIR(a) _mkdir((a))
 23 #elif _LINUX
 24 #define ACCESS access
 25 #define MKDIR(a) mkdir((a),0755)
 26 #endif
 27
 28
 29
 30 int CreatDir( char *pDir )
 31 {
 32     int i = 0;
 33     int iRet;
 34     int iLen;
 35     char* pszDir;
 36
 37     if ( NULL == pDir )
 38     {
 39         return 0;
 40     }
 41
 42     int len = strlen( pDir );
 43     pszDir = new char[len+1];
 44     strcpy(pszDir,pDir);
 45
 46     iLen = strlen( pszDir );
 47
 48     // 创建中间目录
 49     for ( i = 0; i < iLen; i++ )
 50     {
 51         if ( pszDir[i] == ‘\\‘ || pszDir[i] == ‘/‘ )
 52         {
 53             pszDir[i] = ‘\0‘;
 54
 55             //如果不存在,创建
 56             iRet = ACCESS( pszDir, 0 ); //参数为0时表示检查文件的存在性,如果文件存在,返回0,不存在,返回-1。
 57             if ( iRet != 0 )
 58             {
 59                 iRet = MKDIR( pszDir );  //建立新目录
 60                 if ( iRet != 0 )
 61                 {
 62                     return -1;
 63                 }
 64             }
 65             //支持linux,将所有\换成/
 66             pszDir[i] = ‘/‘;
 67         }
 68     }
 69
 70     iRet = MKDIR( pszDir );
 71     return iRet;
 72 }
 73
 74
 75
 76 void main()
 77 {
 78
 79     char* pc = "E:/Save/Game/object/123/abc/1.txt";
 80
 81     string name( pc );
 82
 83     int iPonit = name.find( "Game" );
 84
 85     name.insert(iPonit,"ResBak/");
 86
 87     int i = name.find_last_of("/");
 88
 89     name = name.substr(0,i);
 90
 91     cout << name << endl;
 92
 93     const int len = name.length();
 94     pc = new char[len + 1];
 95
 96     strcpy( pc, name.c_str() );
 97
 98     cout << pc << endl;
 99
100
101     int Result = CreatDir( pc );
102
103     system( "pause" );
104 }
时间: 2024-10-08 10:44:36

创建多级目录的相关文章

php创建多级目录完整封装类操作

创建多级目录函数中调用创建指定下的指定文件的函数: public function create_dir($dir,$mode=0777) { return is_dir($dir) or ($this->create_dir(dirname($dir)) and mkdir($dir, $mode)); } 创建指定路径下的指定文件,string $path(需要包含文件名和后缀),boolean $over_write 是否覆盖文件,int $time 设置时间.默认是当前系统时间,int

PHP使用mkdir创建多级目录的方法

PHP中使用mkdir()可以创建多级目录,相比之前自己一级一级的创建,这个函数非常好用. 下面是php手册上的函数介绍: bool mkdir ( string $pathname [, int $mode = 0777 [, bool $recursive = false [, resource $context ]]] ) 返回值为bool类型. 第一个参数:必须,代表要创建的多级目录的路径: 第二个参数:设定目录的权限,默认是 0777,意味着最大可能的访问权: 第三个参数:true表示

PHP 检查并创建多级目录

<?php //检查并创建多级目录    function checkDir($path){        $pathArray = explode('/',$path);        $nowPath = '';        array_pop($pathArray);        foreach ($pathArray as $key=>$value){            if ( ''==$value ){                unset($pathArray[$ke

Php中使用mkdir如何创建多级目录?

php mkdir函数可以创建目录,而且在php5版本及以上可以直接使用该函数创建多级目录,但在php5以下版本无法直接使用mkdir创建多级目录,需要自己写函数来实现,本文章向大家介绍php开发中使用mkdir创建多级目录的二种实现方法,需要的朋友可以参考一下. 方法一:mkdir创建多级目录 mkdir($path,0777,true); PHP5对创建目录函数 mkdir 增加了一个新的参数 recursive ,通过设置 recursive 为 true 可以实现递归创建目录的目的,但是

php mkdir创建多级目录

先介绍一下 mkdir() 这个函数: mkdir($path,0777,true); 第一个参数:必须,代表要创建的多级目录的路径: 第二个参数:设定目录的权限,默认是 0777,意味着最大可能的访问权: 第三个参数:true表示允许创建多级目录. 举例代码(支持创建中文目录): <?php header("Content-type:text/html;charset=utf-8"); //要创建的多级目录 $path="dai/php/php学习"; //

PHP递归创建多级目录(一道面试题的解题过程)

今天看到一道面试题,要写出一个可以创建多级目录的函数: 我的第一个感觉就是用递归创建,具体思路如下: function Directory($dir){ if(is_dir($dir) || @mkdir($dir,0777)){ //查看目录是否已经存在或尝试创建,加一个@抑制符号是因为第一次创建失败,会报一个“父目录不存在”的警告. echo $dir."创建成功<br>"; //输出创建成功的目录 }else{ $dirArr=explode('/',$dir); /

【转】php利用mkdir创建多级目录

先介绍一下 mkdir() 这个函数: mkdir($path,0777,true); 第一个参数:必须,代表要创建的多级目录的路径: 第二个参数:设定目录的权限,默认是 0777,意味着最大可能的访问权: 第三个参数:true表示允许创建多级目录. 举例代码(支持创建中文目录): <?php header("Content-type:text/html;charset=utf-8"); //要创建的多级目录 $path="dai/php/php学习"; //

node mkdirSync 创建多级目录

提供一个实用的一次性同步创建多级目录的方法,收藏一下. function makeDir(dirpath) { if (!fs.existsSync(dirpath)) { var pathtmp; dirpath.split("/").forEach(function(dirname) { if (pathtmp) { pathtmp = path.join(pathtmp, dirname); } else { //如果在linux系统中,第一个dirname的值为空,所以赋值为&

运用php函数mkdir创建多级目录

php默认的mkdir一次只能创建一层目录,如果在当前目录下创建一个div/css/layout 的目录就需要逐层逐层的先创建div,再创建div/css 再创建 div/css/layout,然而我们希望能让程序自动帮我们完成这个过程. 其实思路也很简单,1.先判断 div目录是否存在,不存在则创建:2.判断子目录 div/css 是否存在,不能存在则创建,3.在第二步中以子目录作为参数递归调用函数本身.也可以按相反顺序来,1.先判断最底层目录div/css/layout是否存在:2.判断di

python创建多级目录的基本格式

1 def mkdir(title):# 创建多级目录的基本格式 2 path = title.strip() #确定不含空格可以不加 3 isExists = os.path.exists('E:\\py\\xmly\\'+path)# 参数是绝对路径 4 # r'E:\py\xmly\\' r起到转义的作用(末尾必须双斜杠)等同于'E:\\py\\xmly\\' 需要转义的字符前加\ 5 # os.path.join(r'E:\xmly\py\\',path) 作用是拼接路径,也可以'E:\