什么是Java7 WatchService的良好替代方案?

3
我需要选择一个类似于Java7中可用的Watch Service的框架。 有什么好的替代框架来跟踪文件系统上的更改。
提前致谢。

1
这与JavaScript有什么关系? - Qantas 94 Heavy
只是想说我愿意尝试 JavaScript 的替代方案。 - Genjuro
3个回答

3
您可以使用JNotify事件库。它允许Java应用程序监听文件系统事件,如创建、修改、重命名、删除。

jnotify链接


2

如果你使用NodeJS,Chokidar非常有趣。它是一个整洁的封装,围绕着node.js fs.watch / fs.watchFile。

var chokidar = require('chokidar');

var watcher = chokidar.watch('file or dir', {ignored: /[\/\\]\./, persistent: true});

watcher
  .on('add', function(path) {console.log('File', path, 'has been added');})
  .on('addDir', function(path) {console.log('Directory', path, 'has been added');})
  .on('change', function(path) {console.log('File', path, 'has been changed');})
  .on('unlink', function(path) {console.log('File', path, 'has been removed');})
  .on('unlinkDir', function(path) {console.log('Directory', path, 'has been removed');})
  .on('error', function(error) {console.error('Error happened', error);})

// 'add', 'addDir' and 'change' events also receive stat() results as second argument.
// http://nodejs.org/api/fs.html#fs_class_fs_stats
watcher.on('change', function(path, stats) {
  console.log('File', path, 'changed size to', stats.size);
});

watcher.add('new-file');
watcher.add(['new-file-2', 'new-file-3']);

// Only needed if watching is persistent.
watcher.close();

// One-liner
require('chokidar').watch('.', {ignored: /[\/\\]\./}).on('all', function(event, path) {
  console.log(event, path);
});


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接