当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Node.js fs.watchFile(filename[, options], listener)用法及代码示例


fs.watchFile(filename[, options], listener)

历史
版本变化
v10.5.0

现在支持 bigint 选项。

v7.6.0

filename 参数可以是使用 file: 协议的 WHATWG URL 对象。

v0.1.31

添加于:v0.1.31


参数

注意 filename 上的变化。每次访问文件时都会调用回调listener

options 参数可以省略。如果提供,它应该是一个对象。 options 对象可能包含一个名为 persistent 的布尔值,它指示只要正在监视文件,进程是否应该继续运行。 options 对象可以指定一个 interval 属性,指示应以毫秒为单位轮询目标的频率。

listener 获取当前统计对象和前一个统计对象的两个参数:

import { watchFile } from 'node:fs';

watchFile('message.text', (curr, prev) => {
  console.log(`the current mtime is: ${curr.mtime}`);
  console.log(`the previous mtime was: ${prev.mtime}`);
});

这些 stat 对象是 fs.Stat 的实例。如果 bigint 选项是 true ,则这些对象中的数值被指定为 BigInt s。

要在文件被修改而不是被访问时得到通知,有必要比较 curr.mtimeMsprev.mtimeMs

fs.watchFile 操作导致 ENOENT 错误时,它将调用一次侦听器,所有字段都归零(或者,对于日期,Unix 纪元)。如果稍后创建文件,将再次调用侦听器,并使用最新的 stat 对象。这是自 v0.10 以来的函数更改。

使用 fs.watch() fs.watchFilefs.unwatchFile 更有效。应尽可能使用fs.watch 而不是fs.watchFilefs.unwatchFile

fs.watchFile()正在观看的文件消失并重新出现时,第二个回调事件(文件重新出现)中previous的内容将与第一个回调事件(消失)中previous的内容相同.

这发生在:

  • 文件被删除,然后恢复
  • 文件被重命名,然后再次重命名回原来的名称

相关用法


注:本文由纯净天空筛选整理自nodejs.org大神的英文原创作品 fs.watchFile(filename[, options], listener)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。