Java检测文件系统中的更改

时间:2010-08-02 12:18:29

标签: java file filesystems

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

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

2 个答案:

答案 0 :(得分:7)

连续轮询是目前在Java中实现的方式 - 虽然不经常轮询,但如果目录包含大量条目,则操作可能会非常繁重。

JDK 7将具有用于执行此java.nio.file.WatchFile

的特定API

答案 1 :(得分:4)

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

我看过的图书馆是 jPollerjNotify 但最后我结束了简单的轮询目录,这对我来说很有趣。