Java 文件夹监听(有没有非时间轮询的策略)?

业务需求:
想要监听文件夹下的指定文件增加或者减少,若增加则将文件名插入数据库,减少则将文件名从数据库删除。

时间轮询方案:
已用commons-io组件实现此功能需求。

但是用时间轮询感觉会实时消耗一部分资源,且占用一个监听线程。在本项目中线程对我来说非常珍贵,因此我想有没有其他策略,可以在指定文件夹下文件新增或者减少时,才触发监听事件?

Jdk7的nio包下有一个FileWatch(好像是这名儿),可以实现。不过本质都一样,也是靠一个线程轮询最后修改时间。

好的,已实现。
但是这个JDK1.7的NIO包有个问题,每次访问一次接口就会执行三次!如下图我打印出来所示:

没有不需要时间轮询的例子吗?

据我所知,好像没。都是靠轮询完成!除非操作系统提供了这种通知接口。你可以找找看,找到了记得分享分享。

好的嘞,目前还是才有Java commons-io的文件监听事件,后续有好的替代方案会及时更新到这!