Node.js学习之文件监控
来源:互联网 发布:php获取访问者mac地址 编辑:程序博客网 时间:2024/06/05 06:31
Node允许监视文件或目录是否发生变化。监视意味着当文件系统里面的文件被创建、修改、删除,都会触发指定的回调函数。
Node提供的File System(文件系统)模块中提供了两个关于文件监控的函数:
fs.watchFile() - 实时监控文件变化
fs.watch() - 实时监控文件夹变化
Node API中明确提出:fs.watch() 比 fs.watchFile 和 fs.unwatchFile 更高效。 可能的话,应该使用 fs.watch 而不是 fs.watchFile 和 fs.unwatchFile。
首先以监控特定文件为例,监视工作目录下的.CSS文件:
创建watchFile.js文件
// 加载File System(文件系统)模块var fs = require('fs');// 获取工作目录下所有文件var files = fs.readdirSync(process.cwd());files.forEach(function(file) { // 监听“.css”后缀的文件 if (/\.css/.test(file)) { console.log('正在监控:' + process.cwd() + '/' + file); fs.watchFile(process.cwd() + '/' + file, function(curr, prev) { console.log('-' + file + ' changed !'); // 注意是"`"(笔记本键盘上数字1前面那个按钮),不是单引号 console.log(`the current mtime is: ${curr.mtime}`); console.log(`the previous mtime was: ${prev.mtime}`); // 监测具体操作 if(Date.parse(prev.ctime) == Date.parse(curr.mtime)){ console.log('-' + file + ' 文件被创建'); }else if(Date.parse(curr.mtime) == 0){ console.log('-' + file + ' 文件被删除'); }else if(Date.parse(curr.mtime) != Date.parse(prev.mtime)){ console.log('-' + file + ' 文件被修改'); } }); }});
监视工作目录的下所有文件:创建watchFolder.js文件
// 加载File System(文件系统)模块var fs = require('fs');// 获取工作目录下所有文件var files = fs.readdirSync(process.cwd());var count = 0;// 列出所有监控的文件console.log('正在监控:' + process.cwd());files.forEach(function(file) { console.log((++count) + ' ' + file);});// 监听器回调有两个参数 (eventType, filename)。 eventType 可以是 'rename' 或 'change',filename 是触发事件的文件的名称。// 注意,在大多数平台,当一个文件出现或消失在一个目录里时,'rename' 会被触发。fs.watch(process.cwd(), function(eventType, filename) { console.log(`事件类型是: ${eventType}`); if (eventType == 'change') { console.log('文件:' + filename + ' 被修改!'); } if (eventType == 'rename') { console.log('文件:' + filename + ' 被新建/删除!'); }});
参考:
Node API:
http://nodejs.cn/api/fs.html#fs_fs_read_fd_buffer_offset_length_position_callback
Node.js 中File System模块详细介绍:
http://www.tuicool.com/articles/equ22ev
http://javascript.ruanyifeng.com/nodejs/fs.html#toc7
http://www.jianshu.com/p/5683c8a93511
Node.js中其他文件监控模块:
http://www.cnblogs.com/cool-fire/p/6565242.html
http://tech.it168.com/a2015/0228/1707/000001707605.shtml
- Node.js学习之文件监控
- node.js学习笔记之写文件
- node.js学习之读取文件初步
- node.js学习之写文件初步
- node.js之学习
- node.js学习笔记之文件读写操作
- node.js学习笔记之使用文件流
- node.js学习之node的安装
- node.js学习之markdown
- JS学习之Node类型
- Node.js之学习网站
- 学习node.js之stream
- Node.js学习之Telnet
- Node.js学习教程之二:node.js的HelloWorld
- 【node.js学习之路】什么是Node.js?
- 【node.js学习】--(3)--读写文件
- Node.js学习-----------异步文件读取
- node.js认识学习四:node之初之体验
- mybatis中两个配置文件的写法
- 数学问题——求回文素数
- sql: where条件中AND、OR运算符的组合使用
- ansible入门安装以及基于Jenkins搭建自动发布系统
- 、简单实现百度地图实时定位功能
- Node.js学习之文件监控
- 关于unity中枚举enum的一些小见解
- distinct和group_concat
- 数据结构---队列---循环队列---顺序存储
- 【Python】Python数据分析一般概念01
- 重写,覆盖,继承,重载的分析
- CSDN 添加源代码附件
- try...catch的方式处理多个异常
- 等待