当我在文件的console.log(stats)
函数中fs.stats
时,它会给我这样的内容:
{ dev: 16777223,
mode: 33188,
nlink: 1,
uid: 501,
gid: 20,
rdev: 0,
blksize: 4096,
ino: 49868100,
size: 5617,
blocks: 16,
atime: Mon Jan 05 2015 18:18:10 GMT-0700 (MST),
mtime: Thu Sep 25 2014 21:21:28 GMT-0600 (MDT),
ctime: Thu Sep 25 2014 21:21:28 GMT-0600 (MDT),
birthtime: Thu Sep 25 2014 21:21:28 GMT-0600 (MDT),
name: 'README.md',
type: 'file' }
这是代码,我正在使用walk node plugin。该函数每次找到文件时都会运行。
walker.on('files', function(path, stats, next){
console.log(stats.name);
next();
});
但是当我做console.log(stats.name)
时,它表示未定义。有谁知道我做错了什么?我是否以某种方式使用了错误的属性?
答案 0 :(得分:2)
您在files
上使用助行器而不是file
上的助行器。因此统计信息可能包含一个文件数组,而不仅仅是一个。请尝试console.log(stats)
查看files
的统计信息参数结构。
或者尝试walker.on('file', function(path, stats, next){});
答案 1 :(得分:1)
查看fs.Stats
的文档,没有这样的name
属性。 fs.stat
类似于stat()
,它在返回的结构中也没有名称。
如果您想要文件名,则甚至不需要致电stat()
。考虑一下:
var fs = require('fs');
fs.readdir('.', function(err, entries) {
// filenames available here in the array `entries`
entries.forEach(function(filename) {
fs.stat('./' + filename, function(err, stats) {
if (!err) {
console.log(stats);
}
});
})
});