Node.js 文件夹目录结构创建

第一次接触NodeJS的文件系统就被它的异步的响应给搞晕了,后来发现NodeJS判断文件夹是否存在和创建文件夹是还有同步方法的,但是还是想尝试使用异步的方法去实现。

使用的方法:
fs.exists(path, callback);
fs.mkdir(path, [mode], callback);

实现文件夹目录结构的创建代码实现如下:

//创建文件夹
function  mkdir(pos, dirArray,_callback){
    var len = dirArray.length;
    console.log(len);
    if( pos >= len || pos > 10){
        _callback();
        return;
    }
    var currentDir = '';
    for(var i= 0; i <=pos; i++){
        if(i!=0)currentDir+='/';
        currentDir += dirArray[i];
    }
    fs.exists(currentDir,function(exists){
        if(!exists){
            fs.mkdir(currentDir,function(err){
                if(err){
                    console.log('创建文件夹出错!');
                }else{
                    console.log(currentDir+'文件夹-创建成功!');
                    mkdir(pos+1,dirArray,_callback);
                }
            });
        }else{
            console.log(currentDir+'文件夹-已存在!');
            mkdir(pos+1,dirArray,_callback);
        }
    });
}

//创建目录结构
function mkdirs(dirpath,_callback) {
    var dirArray = dirpath.split('/');
    fs.exists( dirpath ,function(exists){
        if(!exists){
            mkdir(0, dirArray,function(){
                console.log('文件夹创建完毕!准备写入文件!');
                _callback();
            });
        }else{
            console.log('文件夹已经存在!准备写入文件!');
            _callback();
        }
    });
}

首先把需要创建的一个目录结构存放到一个数组里面,然后主要采用深搜的思想去实现(深度为数组的长度)。

参考文档如下:
http://www.cnblogs.com/gaojun/p/4159488.html#_Toc406152896

原文地址:https://www.cnblogs.com/chenjianxiang/p/5651436.html