如何创建年份的文件夹层次结构 - >月 - >如果node.js中不存在日期

时间:2016-04-13 05:27:21

标签: node.js fs

我正在尝试创建名为current year的文件夹层次结构,创建另一个名称为当月的文件夹,然后再在该文件夹中创建另一个名称为当前日期的文件夹。

例如:今天的日期是2016-05-02,所以如果不存在,则应该创建文件夹,如下面的结构

2016-> 05-> 02

2 个答案:

答案 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 :) ");
  })
});