Я использую 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", он дает мне только путь, куда я его помещаю, а не имя файла.
Как получить имя файла?