zoukankan      html  css  js  c++  java
  • Node fs 创建多层文件夹

    一.dirname()方法

    1. 获得路径当中最后一段文件或文件夹所在的路径。多次调用path.dirname将会逐层返回上级目录

    var path=require("path");
    console.log(path.dirname("a/b/c/d"));//  打印结果a/b/c

    2. 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目录创建成功。");
        });
    });

    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');
  • 相关阅读:
    grafana,graphite,influxdb with docker
    InfluxDB通过HTTP API
    REDIS 六. 修复方案
    linux Service start
    应该掌握的JQuery的7个效果
    webssh: gateone
    Linux下使用timedatectl命令时间时区操作详解
    Linux下使用date命令查看和修改时间
    Linux下使用ntpdate进行时间同步
    nginx内置变量
  • 原文地址:https://www.cnblogs.com/luzhanshi/p/11691430.html
Copyright © 2011-2022 走看看