有一个项目,想用nodejs 做一下文件夹目录下所有文件的 监听,
当文件夹目录下 增加了 文件的时候,就执行某个脚本
如何监听 是否有新的文件生成呢,不是文件修改 ,是有新的文件添加了
有一个项目,想用nodejs 做一下文件夹目录下所有文件的 监听,
当文件夹目录下 增加了 文件的时候,就执行某个脚本
如何监听 是否有新的文件生成呢,不是文件修改 ,是有新的文件添加了
使用fs.watch函数,这个函数是专门用来对文件(或目录)进行监控的。
fs.watch(filename[, options][, listener])
var fs = require('fs');
fs.watch('/home/su/node/tmp', {
persistent: true, // 设为false时,不会阻塞进程。
recursive: false
}, function(event, filename) {
if (event === 'change') {
console.log('检测到新增文件。');
if (filename) {
console.log('文件名:', filename);
}
}
});
touch a.txt
检测到新增文件。
文件名: a.txt
更详细的说明,参考API文档。
5 回答4.9k 阅读✓ 已解决
4 回答2.5k 阅读✓ 已解决
2 回答1.8k 阅读✓ 已解决
5 回答1.9k 阅读
3 回答2k 阅读
1 回答3.3k 阅读
1 回答2.7k 阅读
我忍不住了啊年轻人,你需要
为什么呢?
Node.js fs.watch:
不会再OSX上显示文件名
当你在OSX用编辑器编辑文件的时候不会触发事件
经常会连续触发两次事件
没有提供一个好的接口去递归文件
等等
Node.js fs.watchFile:
经常在处理事件的时候会挂掉
没法递归文件
过高的CPU占用率
让我们再看看数据

所以用Chokidar是个好主意