我watchKey
用来监听特定文件夹中的文件更改。
Path _directotyToWatch = Paths.get("E:/Raja");
WatchService watcherSvc = FileSystems.getDefault().newWatchService();
WatchKey watchKey = _directotyToWatch.register(watcherSvc, ENTRY_CREATE, ENTRY_DELETE, ENTRY_MODIFY);
while (true) {
watchKey=watcherSvc.take();
for (WatchEvent<?> event: watchKey.pollEvents()) {
WatchEvent<Path> watchEvent = castEvent(event);
System.out.println(event.kind().name().toString() + " " + _directotyToWatch.resolve(watchEvent.context()));
watchKey.reset();
}
}
它对我来说很好。如果我修改 raja 文件夹中的文件,它会给我带有路径的文件名。但是,当我将一些文件放在“E:/Raja/Test”之类的子文件夹中时,它只给了我放置它的路径,而不是文件名。
如何获取文件名?