使用Node.js和Express清空目录

时间:2013-02-02 12:38:17

标签: node.js express

我正在寻找一种在Express中清空目录的方法。

基本上,我有一个tmp目录,我存储临时文件,而且每隔一段时间我只想清空所有文件的文件夹,但删除文件夹本身。< / p>

最好的方法是什么?我目前正在使用Node v0.8.9Express v.3.0.0rc4

2 个答案:

答案 0 :(得分:2)

要么检查这个小而甜的模块。

https://github.com/isaacs/rimraf

或查看官方文档和示例。

http://nodejs.org/docs/v0.4.1/api/fs.html#file_System

答案 1 :(得分:0)

我写了这个名为remove folder的函数。它将递归删除某个位置中的所有文件和文件夹。它需要的唯一包是异步。     var async = require(&#39; async&#39;);

function removeFolder(location, removeFolder, next) {
    fs.readdir(location, function (err, files) {
        async.each(files, function (file, cb) {
            file = location + '/' + file
            fs.stat(file, function (err, stat) {
                if (err) {
                    return cb(err);
                }
                if (stat.isDirectory()) {
                    removeFolder(file, true, cb);
                } else {
                    fs.unlink(file, function (err) {
                        if (err) {
                            return cb(err);
                        }
                        return cb();
                    })
                }
            })
        }, function (err) {
            if (err) return next(err)
            fs.rmdir(location, function (err) {
                return next(err)
            })
        })
    })
}

我稍微更改了一下,不删除原始文件夹,使用以下方法调用它:

removeFolder('/tmp', false, function(err){
    //callback
})