node.js - 如何获取目录中文件的总大小?

标签 node.js

如何获取目录中文件的总大小?最好的方法?

最佳答案

这是一个使用核心 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/

相关文章:

node.js - 如何轻松包装整个 (Redis) 客户端

javascript - 在 node.js 中异步读取多个文件

node.js - Node 表达代理中间件句柄重定向

node.js - 如何通过 Node.js Express 从 Cloudinary 中删除图像?

node.js - Windows 上的 Git bash 或 NPM 正在将参数转换为路径

javascript - 不能使用带有 node.js 的静态文件并表达

html - ejs的样式标签相对路径问题

javascript - S3 putObject 回调不返回预期的对象

node.js - coffeescript 编译器的奇怪行为

node.js - 使用redis和node.js问题-Redis_client.hget返回总是false