Electron + NodeJs:fs.statSync()文件大小始终为0

时间:2017-10-18 23:40:04

标签: angularjs node.js electron fs

我正在开发一个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)。菜鸟错误,我的坏...¯_(ツ)_ /¯

1 个答案:

答案 0 :(得分:0)

文件夹没有大小,文件夹中的文件没有。您可以递归遍历所有文件和子文件夹以收集每个文件大小。或者使用类似' get-folder-size'为此。

如果您只在Windows或Linux上运行,您可以尝试从du -ksh path/to/folder这样的本机程序中获取文件夹大小,这在某种程度上会更快。