基本上,我使用全新的 Java 7 WatchService 来监视目录。
我有一个处理程序链,监听目录发出的每个 IO 事件。
问题是一些处理程序需要以某种方式更改这些 IO 事件(== 文件)的原因。例如,如果有人将文件放入受监视的文件夹中,则其中一个处理程序可能会更改其扩展名,将某些内容附加到其文件名或其他内容。
这些动作当然会触发新的 IO 事件,并且前面提到的处理程序会得到它们。然后他们再次进行更改。这显然会导致无限循环......
Java 是否提供任何方法来处理这种情况?如果没有,您将如何处理?
基本上,我只想在事件不是由这些处理程序的操作引起时才运行我的事件处理程序。
更新:至于解决方案,我宁愿只在主事件路由器的代码中进行更改,也不愿在我编写的每个处理程序中担心这一点(“处理程序只有在以前没有做过的情况下才会进行更改”)。