删除节点js中包含文件的文件夹

时间:2018-07-02 23:44:15

标签: node.js

我正在尝试构建代码以删除节点js中的文件(不带模块/外部终端/ cmd命令)。

直到现在,我得到的最好的成绩(我已经在Google上搜索并做了很多工作)是:

function rmdir(d) {
    var self = arguments.callee
    if (fs.existsSync(d)) {
        fs.readdirSync(d).forEach(function(file) {
            var C = d + '/' + file
            if (fs.statSync(C).isDirectory()) self(C)
            else fs.unlinkSync(C)
        })
        fs.rmdirSync(d)
    }
}

但是,即使这里的所有内容都是“同步的”,执行fs.rmdirSync时,它也会引发错误,指出该文件夹不为空(而是)。

我该如何解决?

1 个答案:

答案 0 :(得分:0)

您是否考虑过使用其中一种出色的库? rimraf fs-extra都对递归删除提供了出色的支持,并且可以使用同步或异步方法。

对于app.yaml,第86行的the source code for rimraf显示Array.forEach用于遍历结果(尽管可以理解的是,如果失败,则将超时设置为重试几次)。话虽如此,performance tests for Array.forEach vs. for表明内置构造的运行速度明显加快。