當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。