我正在尝试创建名为current year的文件夹层次结构,创建另一个名称为当月的文件夹,然后再在该文件夹中创建另一个名称为当前日期的文件夹。
例如:今天的日期是2016-05-02,所以如果不存在,则应该创建文件夹,如下面的结构
2016-> 05-> 02
答案 0 :(得分:5)
See this previously answered question
这样做的好方法是使用mkdirp模块。
$ npm install mkdirp
然后使用它来运行需要该目录的函数。在创建路径后调用回调(如果它还没有存在)。如果mkdirp无法创建目录路径,则会设置错误。
var mkdirp = require('mkdirp');
mkdirp('/tmp/some/path/foo', function(err) {
// path was created unless there was error
});
答案 1 :(得分:1)
最好的解决方案是使用名为node-fs-extra的npm模块。主要优点是它构建在模块fs
之上,因此您可以在fs
中使用所有方法。它有一个名为mkdir
的方法,它创建您提到的目录。如果您提供长目录路径,它将自动创建父文件夹。该模块是npm模块fs
的超级集合,因此如果添加此模块,也可以使用fs
中的所有函数。
一个例子
var fse = require('fs-extra')
var os = require('os')
function getTempPath() {
return os.tmpdir();
}
mymodule.get('/makefolder',function(req,res){
var tempfolder = getTempPath();
var myfolder = tempfolder + '/yearfolder/monthfolder/datefolder/anyotherfolder';
fse.mkdirs(myfolder, function (err) {
if (err) return res.json(err)
console.log("success!")
res.json("Hurray ! Folder created ! Now, Upvote the solution :) ");
})
});