我正在实现一个 WatchDog 以递归方式查找文件更改、删除和添加到目录中,我使用的是 linux。该程序运行良好,使用 Java7 执行此操作非常简单,唯一的问题是当我添加一个包含一些文件的目录时,我无法监控所有包含文件的添加。我认为问题在于,当我添加一个新目录时,WatchDog 必须将其注册到 WatchService,同时添加的一些文件会丢失(通常是一两个)。WatchDog 是一个线程,它将每个 updateEvent 放入一个由另一个线程读取的阻塞队列中。
这是看门狗: http: //pastebin.com/q5SW0iJF
有没有人遇到过同样的问题,如果有,你是怎么解决的?
谢谢