监听文件发生的变化,如重命名、修改、删除之类。
/**
* 文件监视
*/
const fs = require("fs");
const path = require("path");
var filePath = path.join(__dirname,"HelloWorld.txt");
//监视1:fs.watch()方法更高效,但其API在各个平台上并非完全一致,在某些情况下不可用。【推荐】
fs.watch(filePath,(eventType,fileName)=>{
if(eventType == "rename")
{
console.log("文件重命名");
}
if(eventType == "change")
{
console.log("文件发生修改");
}
if(fileName)
{
console.log("文件名:",fileName);
}else
{
console.log("文件名未提供!");
}
});
//监视2 方法较慢且不太可靠,但它是跨平台的,因而在网络文件系统中更可靠。
//每隔1秒时间检测文件变化
fs.watchFile(filePath,{interval: 1000},(curr,prev)=>{
console.log("文件最后修改时间:",curr.mtime," 当前文件大小:",curr.size);
console.log("文件上一次修改时间:",prev.mtime,"之前文件大小:",prev.size);
//停止监听
// fs.unwatchFile(filePath);
});
【测试】运行脚本,手动修改HelloWorld.txt文件,你会发现控制台输出Log
总结:文件变化监控,在某些情况下,还是蛮实用的~