使用node.js上的rimraf删除所有子目录

时间:2015-02-27 17:07:44

标签: node.js

我有一个目录结构,其中某些文件夹Data有子目录。在某些时候,我希望一次删除所有这些,我已经为node.js安装了其他令人敬畏的rimraf

到目前为止我的代码:

var dataPath === Path.normalize(__dirname + '/backend/data/');

rimraf(dataPath, function(error) {
    console.log('Error: ', error);
});

我已经尝试了 / backend / data / / backend / data / * ,但似乎没有做到这一点 - 第一个删除整个数据文件夹,第二个触发错误'无法删除null'

我想我可以扫描主目录,查找所有子文件夹并逐个删除它们,但如果可以使用rimraf或类似的包完成,我宁愿选择它。

2 个答案:

答案 0 :(得分:5)

最简单的解决方案是在data完成删除之后重新创建rimraf目录。根据您的使用情况,可能会引入竞争条件,但我怀疑rimraf本身在任何情况下都不具有种族安全性。

另一个选择是阅读目录的内容和每个rimraf,但这是更多的工作,并没有避免任何会影响第一个选项的竞争条件。

答案 1 :(得分:0)

当前版本的rimraf支持glob,因此可以在文件夹的末尾添加一个星号,如下所示:

rimraf(path.join(__ dirname,“ ./uploads/*”),(err)=> {...});