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