zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    AtCoder Grand Contest 032-B
    AtCoder Grand Contest 032 A
    高橋君とカード / Tak and Cards AtCoder
    Divisibility by 25 CodeForces
    Fire Again CodeForces
    cctype函数 (字符类型判断)
    蓝桥杯--- 历届试题 国王的烦恼 (并查集)
    蓝桥杯---买不到的数目
    算法课(经典贪心)
    完美的数字
  • 原文地址:https://www.cnblogs.com/chenjianxiang/p/5651436.html
Copyright © 2011-2022 走看看