Fork me on GitHub 盒子
盒子
文章目录
  1. 背景
  2. 创建方式
    1. 异步创建
    2. 同步创建
    3. jm-mkdirs

Nodejs创建多级目录文件夹

背景

由于Nodejs的API只提供创建一级目录,所以如果需要创建多级目录的话,那需要一级一级去创建,为了代码的简便,采用递归的写法。

创建方式

异步创建

1
2
3
4
5
6
7
8
9
10
11
12
13
var fs = require('fs');
var path = require('path');
function async (dirname, callback){
fs.exists(dirname, function (exists){
if(exists){
callback();
}else{
mkdirs.async(path.dirname(dirname), function (){
fs.mkdir(dirname, callback);
});
}
});
}

缺点是无法保证执行回调的顺序

同步创建

1
2
3
4
5
6
7
8
9
10
11
12
var fs = require('fs');
var path = require('path');
function sync (dirname) {
if(fs.existsSync(dirname)){
return true;
}else{
if(mkdirs.sync(path.dirname(dirname))){
fs.mkdirSync(dirname);
return true;
}
}
}

可以精准的保证执行完成之后再执行后续操作

jm-mkdirs

根据上述的原理,自己编写一个node环境的npm包,专门用于创建多级目录文件夹。

Github地址及使用文档:jm-mkdirs


如果能给您带去些许帮助,鄙人不甚欢心。如有错误,恳请交流指出,谢谢!
转载请注明出处:http://mcchen.club/


支持一下
扫一扫,支持McChen