Java检测文件系统中的更改

我有一个文件夹,其中不断传输新文件。在Java中,检测文件系统更改的最佳方法是什么(即,文件被转储的指定文件夹),并将新到达的文件添加到文件系统中。队列数据结构,以便我可以顺序处理每个传入的文件。

我知道File类中的listFiles()函数,但是使用它我只能获得瞬间可用的文件。 当然,我可以继续轮询文件夹并使用线程获取其中的文件列表。但这是最好的方法还是有更好的方法来实现这一点。

连续轮询是目前在Java中实现它的方法 – 尽管不经常轮询,如果目录包含大量条目,它可能是一个非常繁重的操作。

JDK 7将具有用于执行此java.nio.file.WatchFile的特定API

遗憾的是,在JDK7发布之前,没有标准的方法可以做到这一点。 但是,互联网上有一些库可以使用不同操作系统的本机function来实现这一点。

我看过的库是jPoller和jNotify但最后我只是简单地查看了当我必须这样做时对我有用的目录。