如何获取目录中文件的总大小?最好的方法?
最佳答案
这是一个使用核心 Nodejs fs 库与异步库相结合的简单解决方案。它是完全异步的,应该像“du”命令一样工作。
var fs = require('fs'),
path = require('path'),
async = require('async');
function readSizeRecursive(item, cb) {
fs.lstat(item, function(err, stats) {
if (!err && stats.isDirectory()) {
var total = stats.size;
fs.readdir(item, function(err, list) {
if (err) return cb(err);
async.forEach(
list,
function(diritem, callback) {
readSizeRecursive(path.join(item, diritem), function(err, size) {
total += size;
callback(err);
});
},
function(err) {
cb(err, total);
}
);
});
}
else {
cb(err);
}
});
}
关于node.js - 如何获取目录中文件的总大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7529228/