我正在实现一个看门狗来递归地查找文件更改,删除和添加到目录中,我正在使用linux。该程序运行良好,使用 Java7 非常简单,唯一的问题是当我添加一个包含一些文件的目录时,我无法监控所有包含文件的添加。我认为问题是当我添加新目录时,WatchDog 必须将其注册到 WatchService,同时添加的一些文件丢失(通常为一两个)。WatchDog是一个线程,它将每个更新事件放在一个由另一个线程读取的blockingQueue中。
这是看门狗:http://pastebin.com/q5SW0iJF
有没有人遇到过同样的问题,如果是,你是如何解决的?
谢谢
也许你应该考虑Java 7 WatchService API?这将节省您重新发明轮子的时间。