У меня есть код, который отслеживает каталог через WatchService
в Java.Но в настоящее время я использую циклы, но я хотел бы изменить его на потоки.
try {
WatchService watchService = FileSystems.getDefault().newWatchService();
Paths.get(dirPath).register(watchService, StandardWatchEventKinds.ENTRY_CREATE);
WatchKey key;
while ((key = watchService.take()) != null) {
for (WatchEvent<?> event : key.pollEvents()) {
String fileName = event.context().toString();
if (isPdfFile(fileName)) {
runOnOption.get(option).accept(dirFilePath);
return;
}
}
key.reset();
}
}
catch (IOException | InterruptedException e) {}
}
Метод isPdfFile
проверить, является ли файл PDF, и если да, он собирается переименовать и создать файл журнала дляпереименование.Итак, что я смог сделать, это:
key.pollEvents()
.stream()
.filter(e -> isEdxFile(e.context().toString()))
.forEach( e -> runOnOption.get(option).accept(dirPath+e.context().toString()));
Но чего мне не хватает, так это цикла while и возврата из цикла, когда он найдет файл с расширением pdf.