我有一个目录结构,其中某些文件夹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
或类似的包完成,我宁愿选择它。
答案 0 :(得分:5)
最简单的解决方案是在data
完成删除之后重新创建rimraf
目录。根据您的使用情况,可能会引入竞争条件,但我怀疑rimraf
本身在任何情况下都不具有种族安全性。
另一个选择是阅读目录的内容和每个rimraf
,但这是更多的工作,并没有避免任何会影响第一个选项的竞争条件。
答案 1 :(得分:0)
当前版本的rimraf支持glob,因此可以在文件夹的末尾添加一个星号,如下所示:
rimraf(path.join(__ dirname,“ ./uploads/*”),(err)=> {...});