gpt4 book ai didi

Java 7 监视服务 : avoiding an infinite loop of events when changing the event source in handler

转载 作者:搜寻专家 更新时间:2023-11-01 02:52:41 25 4
gpt4 key购买 nike

基本上,我使用全新的 Java 7 WatchService 来监视目录。

我有一个处理程序链来监听目录发出的每个 IO 事件。

问题是一些处理程序需要以某种方式更改那些 IO 事件(== 文件)的原因。例如,如果有人将一个文件放入受监视的文件夹中,其中一个处理程序可能会更改它的扩展名、在其文件名后附加一些内容,或其他任何内容。

这些操作当然会触发新的 IO 事件,并且上述处理程序会获取它们。然后他们再次进行更改。这显然会导致无限循环...

Java 是否提供任何方法来处理这种情况?如果没有,您将如何处理?

基本上,我只想在事件不是由那些处理程序的操作引起时运行我的事件处理程序。

更新:至于解决方案,我宁愿仅在主事件路由器的代码中进行更改,也不愿在我编写的每个处理程序中都担心这一点(“处理程序仅在没有进行更改时才进行更改之前就这样做”)。

最佳答案

如果没有基本情况,这只会导致无限循环。

假设人们将文件放在扩展名为“.bar”的目录中,而您想要扩展名为“.foo”,那么,您的处理程序且仅当当前扩展名为“.foo”时才会进行更改。酒吧”。

即使您的处理程序仍会收到新 <file>.foo 的事件,您可以丢弃它,停止“无限”事件传播。

关于Java 7 监视服务 : avoiding an infinite loop of events when changing the event source in handler,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8368992/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com