【发布时间】:2011-11-15 16:14:30
【问题描述】:
我已经实现了一个文件系统观察器。每当我尝试删除监视目录时,它都会为该目录中的所有文件或子目录生成ENTRY_MODIFY 事件。有什么办法可以找到被监视目录的删除命令?我不想查看父目录,因为这样所有其他文件和文件夹也将被监视更改。
【问题讨论】:
-
没有一些代码,我们都在猜测。请展示你所做的,编辑到最小的SSCCE。
-
public void registerWithWatchService(String path) {dirpath = path;路径 dir = Paths.get(path);try { WatchKey key = dir.register(watcher, ENTRY_CREATE, ENTRY_DELETE,ENTRY_MODIFY);} catch (IOException x) {} public void processEvents() { while (true) { WatchKey key;尝试 { 键 = watcher.take(); } 捕捉 (InterruptedException x) { 返回; } for (WatchEvent> 事件 : key.pollEvents()) { WatchEvent.Kind> kind = event.kind();WatchEvent
ev = (WatchEvent ) 事件;路径文件名 = ev.context();路径 dir = (Path)key.watchable();路径}}
标签: java directory filesystemwatcher