Ответ 1
Вам нужно получить родительский каталог из WatchKey для разрешения полного пути
WatchKey key;
WatchEvent<Path> event;
Path dir = (Path)key.watchable();
Path fullPath = dir.resolve(event.context());
Я использую Java 7, java.nio.file.WatchEvent вместе с WatchService. После регистрации, когда я просматриваю события ENTRY_MODIFY, я не могу добраться до абсолютного пути файла для события. Есть ли способ добраться до абсолютного пути файла из объекта WatchEvent?
Вам нужно получить родительский каталог из WatchKey для разрешения полного пути
WatchKey key;
WatchEvent<Path> event;
Path dir = (Path)key.watchable();
Path fullPath = dir.resolve(event.context());
Предполагается, что вы захотите просмотреть несколько каталогов (например, отслеживать дерево файлов для изменений), сохранив зарегистрированный WatchKey
, а связанный с ним Path
в Map<WatchKey, Path>
также будет жизнеспособным решением.
Когда событие запускается, Map
может быть запрошено связанный Path
с данным WatchKey
, а затем Path
измененного файла может быть разрешен с помощью Path
WatchKey
связано с.
String fullPath = path.toString() + "\\" + event.context(). toString();
: D
Определите, какой у вас объект, вы можете получить абсолютный путь:
Path.toAbsolutePath()
File.getAbsoluteFile()