如何获得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'); });