2017-10-18 219 views
0

我正在开发Electron应用程序,我需要访问文件的大小。我正在使用fs.statSync()来完成此操作。 我的问题是,fs.statSync()stats.size始终为0(零)。Electron + NodeJs:fs.statSync()文件大小始终为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

文件夹没有大小,该文件夹中的文件做。您可以遍历所有文件和子文件夹以收集每个文件大小。或者使用像'get-folder-size'这样的包。

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

+0

我不是想得到文件夹大小,而是文件大小。 “downloadFolder”变量具有文件的路径。为了清晰起见,我更新了我的问题。 – Ricky