2014-02-28 29 views
1

我需要選擇一個類似於Java7上可用的監視服務的框架。 什麼是一個很好的替代框架來跟蹤文件系統的變化。什麼是Java7 WatchService的不錯選擇?

在此先感謝

+1

這個怎麼樣相關的JavaScript? –

+0

只是說,我打開JavaScript的替代品。 – Genjuro

回答

3

您可以使用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); 
});