How do I iterate through the files in a directory and it's sub-directories in Java?
Как мне выполнить итерацию по файлам в каталоге и его подкаталогам в Java?
Мне нужно получить список всех файлов в каталоге, включая файлы во всех подкаталогах. Каков стандартный способ выполнения итерации каталога с Java?
Переведено автоматически
Ответ 1
Вы можете использовать File#isDirectory(), чтобы проверить, является ли данный файл (путь) каталогом. Если это так true, то вы просто снова вызываете тот же метод с его File#listFiles() результатом. Это называется рекурсией.
Обратите внимание, что это чувствительно к StackOverflowError когда дерево глубже, чем может вместить стек JVM. Если вы уже используете Java 8 или новее, то вам лучше использовать Files#walk() вместо этого который использует хвостовую рекурсию: