Node.js fs.fstat方法使用详解

文件操作时想拿到元数据?Node.js里的 fs.fstat 方法还挺好用的。它不是通过文件路径,而是直接通过打开后的文件符来获取各种信息,比如文件大小、权限、修改时间啥的,适合你在上传、缓存或权限校验场景里用。

fs.fstat的用法也挺,基本套路就是先用 fs.open 打开文件拿到 fd,再传给 fs.fstat 获取状态信息。回调里会返回一个 stats 对象,里面的数据全,比如 stats.size 是文件大小,stats.mtime 是修改时间。

比如下面这个小例子,打开 content.txt 文件,拿到文件信息,打印出来,再把文件关掉,流程清晰:

const fs = require('fs');
fs.open('content.txt', 'a', (err, fd) => {
  if (err) throw err;
  console.log('file open');
  fs.fstat(fd, (err, stats) => {
    if (err) throw err;
    console.log(stats);
    fs.close(fd, () => console.log('file close'));
  });
});

你要是以前用过 fs.stat,那这个方法你上手会更快。主要区别是 fs.fstat 用的是 文件符,更适合链式,尤其是文件还没写完就要拿状态的那种场景。

嗯,对了,如果你想进一步了解 fs.statfs.fstat 的区别,可以看看这篇对比文章,讲得还挺清楚。

fs.fstat 适合你在已经打开的文件时查状态,比起重新查路径,性能也会好一些。如果你还没用过,建议试试看。

pdf 文件大小:29.8KB