Поиск файлов / каталогов рекурсивно в папке Java - PullRequest
0 голосов
/ 29 апреля 2020

Я хочу получить все подоказы определенной папки (не только прямые, но и все вложенные и т. Д. c. -> рекурсивные), содержащие определенное регулярное выражение. Это должно быть максимально эффективно.

Регулярное выражение вводится пользователем. Например, он вводит «hello», а затем должны быть перечислены все подзаказы папки (myFolder), которые содержат регулярное выражение «. * Hello. *». Более конкретно c, пути найденных папок должны быть возвращены.

Я уже провел некоторое исследование и нашел nio.file, но я не уверен, что nio.file в этом случае быстрее io.file. Я новичок во всей этой топи c, поэтому извините, если Я говорю что-то, что было неправильно. Я использую Java 11.

Например, я также нашел такую ​​функцию, и она работает:

Stream s = Files.find(
                Paths.get("myFolder"), 
                Integer.MAX_VALUE,
                (path, basicFileAttributes) -> {
                    File f = path.toFile();
                    return f.getName().matches(".*'myRegexHere'.*") && f.isDirectory() && !f.isHidden();
                });

Но я не уверен если есть более эффективные функции / подходы или более эффективный способ. Я открыт для предложений и идей.

РЕДАКТИРОВАТЬ :

Есть ли способ исключить определенные папки из поиска?

...