博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Node.Js fs模块文件操作(三)
阅读量:4288 次
发布时间:2019-05-27

本文共 2010 字,大约阅读时间需要 6 分钟。

三、Node.Js 文件或目录监视

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

对文件进行监视,并且在监视到文件被修改时执行处理

/**

 * filename, 完整路径及文件名;
 * [options], persistent true表示持续监视,不退出程序;interval 单位毫秒,表示每隔多少毫秒监视一次文件
 * listener, 文件发生变化时回调,有两个参数:curr为一个fs.Stat对象,被修改后文件,prev,一个fs.Stat对象,表示修改前对象
 */

var fs = require('fs');var path = require('path');var file1 = path.resolve('/test1/one.txt');//监视文件//1.当第一次创建监视器的时候,如果文件不存在,监视器毁掉函数会触发一次fs.watchFile(file1, {    interval: 20}, function(curr, prev) {    if (Date.parse(prev.ctime) == 0) {        console.log('文件被创建');    } else if (Date.parse(curr.ctime) == 0) {        console.log('文件被删除');    } else if (Date.parse(curr.mtime) != Date.parse(prev.mtime)) {        console.log('文件有修改');    }});var file2 = path.resolve('/test1/two.txt');fs.watchFile(file2,  function(curr, prev) {    console.log('这是第二个watch,监视文件有修改');});
2.fs.unwatchFile(filename, [listener]);

取消对文件进行监视

/**

 * filename, 完整路径及文件名;
 * [listener], 要取消的监听器事件,如果不指定,则取消所有监听处理事件
 */

var fs=require('fs');var path=require('path');var file1=path.resolve('/test1/one.txt');//监视文件//当前程序没有结束,一直在监视文件var listener=function(curr,prev){	console.log('监视文件发生修改');};fs.watchFile(file1,{interval:100},listener);//取消监视文件//当前程序程序结束退出fs.unwatchFile(file1,listener);
3.fs.watch(filename, [options], [listener]);

监视文件或目录

//对文件或目录进行监视,并且在监视到修改时执行处理;

// fs.watch返回一个fs.FSWatcher对象,拥有一个close方法,用于停止watch操作;
// 当fs.watch有文件变化时,会触发fs.FSWatcher对象的change(err, filename)事件,err错误对象,filename发生变化的文件名
/**
 * filename, 完整路径及文件名或目录名;
 * [listener(event, filename], 监听器事件,有两个参数:event 为rename表示指定的文件或目录中有重命名、删除或移动操作或change表示有修改,filename表示发生变化的文件路径
 */

var fs=require('fs');var path=require('path');var file1=path.resolve('/test1');//监视文件var fsWatcher=fs.watch(file1,function(err,filename){	//console.log('创建监视器成功,filename:'+filename);});//chang 事件会触发多次fsWatcher.on('change',function(err,filename){	console.log(filename+'-发生变化');});//50秒后 关闭监视setTimeout(function(){	fsWatcher.close(function(err){		if(err)			console.error(err);		console.log('关闭成功watch');	});},50000);
更多参考:

转载地址:http://fyogi.baihongyu.com/

你可能感兴趣的文章
计算机工作流程
查看>>
DHCP服务器详解
查看>>
存储过程和事务区别
查看>>
c语言统计字符串中每个字符出现的次数
查看>>
python元组和列表的区别
查看>>
面试题:100个白球,100个黑球,每次取两个
查看>>
hadoop Context类
查看>>
python简介
查看>>
linux系统同时安装python2.x和3.x
查看>>
python 中的[::-1]和[:-1]
查看>>
python中eval函数和str函数
查看>>
python glob模块
查看>>
Ubuntu1604安装pycharm
查看>>
linux下python3 安装tkinter库
查看>>
python Tk()、Frame()、TopLevel()用法
查看>>
Python sys.argv[]详解
查看>>
Python sys.path、sys.modules模块介绍
查看>>
python元组遍历
查看>>
python字典用法总结
查看>>
python异常处理
查看>>