CreateDirectory递归创建多级目录

目的:实现用CreateDirectory创建多级目录

1.引入静态库

#include "shlwapi.h"

#pragma comment(lib,"shlwapi.lib")

2.函数


const wchar_t* wcstrrchr(const wchar_t* str, const wchar_t wc)
{
    const wchar_t* pwc = NULL;
    for (int i=wcslen(str)-1;i>=0;i--)
    {
        if (str[i] == wc)
        {
            pwc = str + i;
            break;
        }
    }
    return pwc;
}  

bool createMultiDir(const wchar_t* path)
{
    if (path == NULL) return false;
    const wchar_t* pwcStrrchr = wcstrrchr(path,L‘\\‘);
    if (!pwcStrrchr) return false;
    if (PathIsDirectory(path)) return true;  

    wchar_t wsSubPath[MAX_PATH] = {};
    memset(wsSubPath,0,sizeof(wsSubPath));
    for (int i=0; i<pwcStrrchr-path; i++)
        wsSubPath[i] = *(path+i);
    createMultiDir(wsSubPath);
    if(CreateDirectory(path,NULL)) return true;
    return false;
}  

3.调用案例

createMultiDir(L"d:\\whish\\test\\好孩子\\宝马\\测试.txt"); //绝对路径
createMultiDir(L".\\whish\\test\\好孩子\\宝马\\测试.txt");//相对路径

原文地址:http://blog.51cto.com/whish/2103950

时间: 2024-10-08 13:54:24

CreateDirectory递归创建多级目录的相关文章

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

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

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

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

运用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

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一次只能创建一层目录,而要逐层创建各级目录的话,一般都是先从父创建,然后逐层往下创建,但是这样手工创建的话,有点太过于麻烦了. 我们写程序是做什么的?不久是为了能自动化实现我们需要的功能么,这里的方法就是为了能够通过程序帮我们自动创建完成层级目录. Ruesin.com 思路有两种: 一.从上往下(父级→子级) 1.先判断

php mkdir创建多级目录

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

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

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