nodejs列出或删除所有文件和目录,异步传递起始路径

时间:2015-08-08 09:37:13

标签: node.js fs

我一直在浏览stackoverflow主题,找到有用的东西,但实际上并没有什么。我需要的是(可能)一些模块,你可以像这样调用:

someModule('/start/path/', 'list', function(err, list) {
    // list contains properly structured object of all subdirectories and files
});

也是这个

someModule('/start/path/', 'remove', function(err, doneFlag) {
    // doneFlag contains something like true so i can run callback
});

我需要以上功能为我的学生创建迷你网页构建ftp /代码编辑器。

重要的是,列表包含NOT文件的正确结构,以及它们所在的子目录。它不一定非常容易,就像在我理想的例子中一样,最重要的是功能就在那里。感谢您的所有推荐。

1 个答案:

答案 0 :(得分:2)

我根据自己的需要制作了一个模块,可以帮到你。看看alinex-fs。这是node.js fs模块的扩展,可以用作替换。

另外它有一个非常强大的fs.find()方法,它将递归搜索并匹配linux find命令之类的文件。搜索内容由简单的配置哈希完成。 然后你可以遍历结果并删除所有内容(也是递归的)。

示例用法可能如下所示:

# include the module
var fs = require('alinex-fs');

# search asynchronouse
fs.find('/tmp/some/directory', { 
  include: 'test*',
  type: 'dir'
  modifiedBefore: 'yesterday 12:00'
  # and much more possibilities...
}, function(err, list) {
  if (err) return console.error(err);

  # async included here for readability but mostly moved to top
  var async = require('async');
  # parallel loop over list
  async.each(list, function(file, cb) {
    # remove file or dir
    return fs.remove(file, cb);
  }, function(err) {
    if (err) return console.log(err);
    console.log('done');
  });

});

如果您已经有需要删除的条目列表,您也可以只使用上述代码的内部函数。

我希望这会帮助你更进一步。如果没有,请更具体地提出您的问题。