Я не уверен, что я использую правильный подход, поэтому я открыт для новых идей, прежде чем сообщить мне, что я делаю это неправильно. У меня есть массив путей каталогов, которые мне нужны для поиска файлов. Скажем, все .txt на примере. Теперь я запускаю Files.walkFileTree(...)
в каждом каталоге и с SimpleFileVisitor
, который останавливается при первом совпадении. Но теперь я хочу добавить кнопку next
, которая продолжает поиск с момента остановки. Как я могу это сделать?Продолжить посещение SimpleFileVisitor
Я думал, что могу сохранить все совпадения в массиве, а затем прочитать его оттуда, но это пространство и память. Поэтому лучше понять.
// example paths content: [/usr, /etc/init.d, /home]
ArrayList<String> paths;
for(String s : paths)
Files.walkFileTree(Paths.get(s), new SimpleFileVisitor<Path>() {
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
if (alreadyfound >= 10) {
return FileVisitResult.TERMINATE;
}
if (file.toString().endsWith(".txt")) {
System.out.println("Found: " + file.toFile());
}
return FileVisitResult.CONTINUE;
}
});
вы не можете просто сохранить точку я в сессии? – DamienB
@ DamienBoue Да, но я не знаю как. Если скажем, я смотрю в корне и находит что-то на /home/file.txt. Я могу сохранить путь, но как я могу продолжить работу во всех корневых подкаталогах? –
Вы сказали, что у вас есть массив. Получить индекс в массиве совпадающего пути. А потом включите его. Затем вы можете начать с этого индекса в нашем массиве. Код для удаления для дополнительной помощи – DamienB