如何获得node.js中的目录大小,而不recursion通过目录?

如何获得node.js中目录的大小而不recursion遍历目录中的所有子节点?

例如

var fs = require('fs'); fs.statSync('path/to/dir'); 

将这样的对象返回给我,

 { dev: 16777220, mode: 16877, nlink: 6, uid: 501, gid: 20, rdev: 0, blksize: 4096, ino: 62403939, size: 204, blocks: 0, atime: Mon May 25 2015 20:54:53 GMT-0400 (EDT), mtime: Mon May 25 2015 20:09:41 GMT-0400 (EDT), ctime: Mon May 25 2015 20:09:41 GMT-0400 (EDT) } 

但是size属性不是目录的大小,它是子项(也就是它里面的文件的总和)。

没有办法得到一个目录的大小(包括其中的文件的大小)没有recursionfind孩子的大小(然后总结这些)?

我基本上是试图做相当于du -ksh my-directory但如果给定的目录是非常大的(例如/ )比它需要永远recursion获得真正的目录大小..

你应该尝试“getFolderSize”节点模块https://www.npmjs.com/package/get-folder-size

用法

 getFolderSize(folder, [regexIgnorePattern], callback) 

例:

 var getSize = require('get-folder-size'); getSize(myFolder, function(err, size) { if (err) { throw err; } console.log(size + ' bytes'); console.log((size / 1024 / 1024).toFixed(2) + ' Mb'); });