我正在开发一个Electron应用程序,我需要访问文件的大小。我正在使用fs.statSync()来完成此任务。 我的问题是fs.statSync()stats.size始终为0(零)。
以下是我获取文件大小的方法:
var stats = fs.statSync(filePath);
var fileSize = stats.size; //file size is always 0
console.log("fileSize: " + fileSize);
统计详细对象数据:
Stats {dev: 1584160373, mode: 33206, nlink: 1, uid: 0, gid: 0…}
atime: Wed Oct 18 2017 23:39:53 GMT+0100 (GMT Summer Time)
birthtime: Wed Oct 18 2017 23:10:50 GMT+0100 (GMT Summer Time)
blksize: undefined
blocks: undefined
ctime: Thu Oct 19 2017 00:35:33 GMT+0100 (GMT Summer Time)
dev: 1584160373
gid: 0
ino: 8444249301430590
mode: 33206
mtime: Thu Oct 19 2017 00:35:33 GMT+0100 (GMT Summer Time)
nlink: 1
rdev: 0
size: 0
uid: 0
我在这里做错了什么? 顺便说一句,我使用的是Windows 10 x64。
更新:我解决了我的问题。问题不在于fs.statSync(),而在于文件(它们的大小均为0)。菜鸟错误,我的坏...¯_(ツ)_ /¯
答案 0 :(得分:0)
文件夹没有大小,文件夹中的文件没有。您可以递归遍历所有文件和子文件夹以收集每个文件大小。或者使用类似' get-folder-size'为此。
如果您只在Windows或Linux上运行,您可以尝试从du -ksh path/to/folder
这样的本机程序中获取文件夹大小,这在某种程度上会更快。