• nodejs创建多层目录


    1. fs.mkdir不能一次创建多层目录,必须先创建上层目录,再创建下层目录

    //同步
    fs.mkdirSync("./tmp/");
    fs.mkdirSync("./tmp/test/");
    
    //异步
    fs.mkdir("./tmp/",function(err){
       if (err){
           return console.error(err);
       }
       console.log("tmp目录创建成功。");
       fs.mkdir("./tmp/test/",function(err){
            if (err){
               return console.error(err);
            }
            console.log("test目录创建成功。");
        });
    });

    2. path.dirname用法

    var path= require("path");
    
    path.dirname('/foo/bar/baz/asdf/quux')
    
    // returns
    '/foo/bar/baz/asdf'
    
    多次调用path.dirname将会逐层返回上级目录
    
    path.dirname(path.dirname('/foo/bar/baz/asdf/quux'))
    
    // returns
    '/foo/bar/baz'
    
    path.dirname(path.dirname(path.dirname('/foo/bar/baz/asdf/quux')))
    
    // returns
    '/foo/bar'
    
    path.dirname(path.dirname(path.dirname(path.dirname('/foo/bar/baz/asdf/quux'))))
    
    // returns
    '/foo'

    3. nodejs递归创建目录

    var fs = require("fs");  
    var path = require("path");  
      
    // 递归创建目录 异步方法  
    function mkdirs(dirname, callback) {  
        fs.exists(dirname, function (exists) {  
            if (exists) {  
                callback();  
            } else {  
                // console.log(path.dirname(dirname));  
                mkdirs(path.dirname(dirname), function () {  
                    fs.mkdir(dirname, callback);  
                    console.log('在' + path.dirname(dirname) + '目录创建好' + dirname  +'目录');
                });  
            }  
        });  
    }  
    // 递归创建目录 同步方法
    function mkdirsSync(dirname) {
        if (fs.existsSync(dirname)) {
          return true;
        } else {
          if (mkdirsSync(path.dirname(dirname))) {
            fs.mkdirSync(dirname);
            return true;
          }
        }
      }
    
    mkdirs('hello/a/b/c',() => {
        console.log('done');
    })
    
    // mkdirsSync('hello/a/b/c');
  • 相关阅读:
    算法之路 level 01 problem set
    算法原理与实践(链表)
    散列表(HashTable)
    系统设计与实践(实战演练)
    桶排序 + 基数排序
    算法原理与实践(二叉树)
    Total Difference String
    【翻译】std::list::remove
    【翻译】std::remove
    Observer模式实践
  • 原文地址:https://www.cnblogs.com/mengff/p/9753179.html
Copyright © 2020-2023  润新知