Java文件监视器

Java文件监视器,java,watchservice,file-monitoring,Java,Watchservice,File Monitoring,我目前有一个java程序,可以通过网络监控远程文件夹。如果添加或删除了文件,则会使用此信息填充日志 如果与文件夹的连接中断并重新连接,监视器将恢复正常 但是,我遇到的一个错误是,如果连接断开,一个文件被添加到文件夹中,并且连接被重新建立,监视器不会填充日志以反映该文件已被添加。如果已删除,则日志仍会相应更新 我正在使用WatchService和WatchKey监视文件夹,我相信这就是发生错误的地方。重新连接时,即使添加了文件,键值也将保持null。在重新连接以确保发现任何新文件时,是否仍要指定除

我目前有一个java程序,可以通过网络监控远程文件夹。如果添加或删除了文件,则会使用此信息填充日志

如果与文件夹的连接中断并重新连接,监视器将恢复正常

但是,我遇到的一个错误是,如果连接断开,一个文件被添加到文件夹中,并且连接被重新建立,监视器不会填充日志以反映该文件已被添加。如果已删除,则日志仍会相应更新

我正在使用WatchService和WatchKey监视文件夹,我相信这就是发生错误的地方。重新连接时,即使添加了文件,键值也将保持null。在重新连接以确保发现任何新文件时,是否仍要指定除null以外的值

    WatchService service = fs.newWatchService();
    //Need an assignment other than service.poll()
    WatchKey key = service.poll(POLLING_INTERVAL , TimeUnit.SECONDS);
    populateLog("KEY: "+key);//Debuging
    // Dequeuing events
    if(key!=null){ Populate logs...

没有代码就没有帮助这很可能是任何平台上运行的正常行为。看看javadoc,其中提到了平台依赖性和可能的行为。您可能必须在连接断开之前保存文件夹的状态,并将其与重新连接后的文件夹状态进行比较。