我使用inotify nio包装器捕获特定目录中的文件创建。好的,我有这个
private final String tmpDir1 = Files.createTempDirectory(null);
private final String tmpDir2 = Files.createTempDirectory(null);
WatchService watchService = FileSystems.getDefault.newWatchService()
Paths.get(tmpDir1).register(watchService, ENTRY_CREATE)
Paths.get(tmpDir2).register(watchService, ENTRY_CREATE)
public String getModifiedFilePath(){
WatchKey key = ((WatchEvent<Path>) watchService.take())
Path p = ((WatchEvent<Path>)(key.pollEvents().iterator().next())).context()
return
}
按照方法文件中的规定
WatchEvent#context
返回事件的上下文。假使
ENTRY_CREATE
,则,
ENTRY_DELETE
和
ENTRY_MODIFY
事件上下文是
Path
那就是
这个
向监视注册的目录之间的相对路径
服务,以及创建、删除或修改的条目
。
但是
sun.nio.fs.AbstractWatchKey
包含字段
private final Path dir
.但该类是包私有的。是否有方法获取
WatchEvent#上下文
属于?
UPD:为每个我想看的目录创建inotify实例听起来很有意思。