官方说明:
fs.stat(path, callback)#
path
<string> | <Buffer> | <URL>callback
<Function>err
<Error>stats
<fs.Stats>
异步的 stat(2)。 回调有两个参数 (err, stats)
其中 stats
是一个 fs.Stats
对象。
如果发生错误,则 err.code
会是常见系统错误之一。
不建议在调用 fs.open()
、fs.readFile()
或 fs.writeFile()
之前使用 fs.stat()
检查一个文件是否存在。 作为替代,用户代码应该直接打开/读取/写入文件,当文件无效时再处理错误。
如果要检查一个文件是否存在且不操作它,推荐使用 fs.access()
。
有点纳闷,为什么官方文档并没有直接说stat的作用?
方法说明: 获取文件信息。 语法:fs.stat(path, [callback(err, stats)])
由于该方法属于fs模块,使用前需要引入fs模块(var fs= require(“fs”)
接收参数:
path 文件路径
callback 回调,传递两个参数,异常参数err, 文件信息数组 stats
stats包含以下信息:(以下信息为案例中读取的文件信息,非默认值)
代码如下:
{
dev : 0 ,
mode : 33206 ,
nlink : 1 ,
uid : 0 ,
gid : 0 ,
rdev : 0 ,
ino : 0 ,
size : 378(字节) ,
atime : Tue Jun 10 2014 13:57:13 GMT +0800 <中国标准时间> ,
mtime : Tue Jun 13 2014 09:48:31 GMT +0800 <中国标准时间> ,
ctime : Tue Jun 10 2014 13:57:13 GMT +0800 <中国标准时间>
}
例子:
代码如下:
var fs = require('fs');
fs.stat('content.txt', function(err, stats){
if(err){
throw err;
}else{
console.log(stats);
}
})
源码:
代码如下:
fs.stat = function(path, callback) {
callback = makeCallback(callback);
if (!nullCheck(path, callback)) return;
binding.stat(pathModule._makeLong(path), callback);
};
callback = makeCallback(callback);
if (!nullCheck(path, callback)) return;
binding.stat(pathModule._makeLong(path), callback);
};
对应的相关方法是 fs.statsync()