我有一个简单的文件监视器设置,可以监视一个文件,这样当该文件的内容发生更改、添加或删除时我就会收到通知。但是,当文件被删除时,我永远不会收到文件被添加回来的通知。这是我的代码片段:
String properyPath = "/some/directory/somexml.xml";
FileSystemManager fsManager;
fsManager = VFS.getManager();
FileObject listendir = fsManager.resolveFile( propertyPath );
DefaultFileMonitor fm = new DefaultFileMonitor( this );
fm.setRecursive( true );
fm.addFile( listendir );
fm.start();
当 propertyPath 文件被删除时,我会在 fileDeleted 实现中收到通知,但当我再次重新创建文件时,fileAdded 方法永远不会被调用。这是正常的吗?如果是这样,我如何设置才能在删除后收到添加通知?
最佳答案
您似乎受到 this issue 的影响。如票证中所述,您可以尝试设置零延迟:
fm.setDelay(0);
或者尝试修补 DefaultFileMonitor。但是,如果您要同时监视太多文件,轻微的延迟可能会对性能产生影响。
关于java - 当使用 VFS (apache commons) 监视的文件被删除时,当文件被添加回来时我不会收到通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20057197/