【问题标题】:what's a good alternative to Java7 WatchService?Java7 WatchService 有什么好的替代品?
【发布时间】:2014-02-28 11:29:29
【问题描述】:

我需要选择一个类似于 Java7 上可用的 watch 服务的框架。 什么是跟踪文件系统更改的好替代框架。

提前致谢

【问题讨论】:

  • 这和 JavaScript 有什么关系?
  • 只是说我愿意接受 javascript 替代品。

标签: java-6 watchservice


【解决方案1】:

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

jnotify Link

【讨论】:

    【解决方案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);
    });
    

    【讨论】:

      【解决方案3】:
      猜你喜欢
      • 1970-01-01
      • 2020-04-27
      • 2023-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多