是否可以使用java代码监控文件夹?

Bar*_*Wei 6 java monitoring


有没有人知道如何使用java监控文件夹?或者任何人都可以给我一个指示,我怎么能开始这个.这是我的想法.

启动一个线程来扫描文件夹更改,这可能是创建,删除,更新此文件夹中的文件或其他事情发生,如上次更新.
但在这种情况下,你必须控制线程循环.如果这个线程循环不能很好地控制,那么它将浪费cpu并可能导致致命的问题.

或者,是否有任何框架或一些演示代码来执行此操作?希望我们能找到更好的方法来做到这一点.非常感谢.

dog*_*ane 13

JDK7的java.nio.file包有一个WatchService支持文件更改通知.您可以使用它来监视目录以进行更改.这使用可用的本机设施,否则它使用原始机制,如轮询.是一篇帖子.

现在,您可以尝试jpathwatch,它是WatchService接口的实现并使用本机OS功能,而不是轮询.


Ben*_*ine 1

你的想法还不错。

要在java中监视文件夹,通常的方法是使用循环在单独的线程中控制它。为了节省CPU,您可以使用节奏(每n秒检查一次)。

然后,要通知该线程的更改,您可以使用“观察者”设计模式