zoukankan      html  css  js  c++  java
  • 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');
  • 相关阅读:
    转载---JVM四种引用--用于记录知识
    Ionic的安装、创建、及一些记录
    Angular响应式表单--附上完整代码演示
    Angular自定义模块—使用路由实现懒加载--及错误解决
    Angular自定义模块(普通)
    Angula获取服务器数据
    Angular同步与异步获取服务数据(附完整代码)
    Angular父子组件的方法传递以及数据传递
    logrotate
    Capistrano 3
  • 原文地址:https://www.cnblogs.com/mengff/p/9753179.html
Copyright © 2011-2022 走看看