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');
  • 相关阅读:
    Electron+Vue开发跨平台桌面应用
    vue-cli3.0 脚手架搭建项目的过程详解
    dart-sass与node-sass介绍
    创建vue-cli4项目,报错 ERROR command failed: yarn
    CSS Grid 网格布局教程
    总结5种自适应方式
    前端实战:electron+vue3+ts开发桌面端便签应用
    SDK 和 API 的区别是什么?
    Pinia 快速入门
    返回数组中最大的三个数
  • 原文地址:https://www.cnblogs.com/mengff/p/9753179.html
Copyright © 2011-2022 走看看