/
EugenyCh7
/
JavaAndScalaLessons
Обзор
Документация
Войти
/
EugenyCh7
/
JavaAndScalaLessons
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
JavaTest/src/ch3/ex11/Main.java
48 строк
2 KB
Eugeny Chekmarev
IDEA update
15 июн 2021, 21:11
15 июн 2021, 21:11
47fadf9
Код
Авторство
О чём код?
package ch3.ex11; import java.io.File; import java.io.FileFilter; import java.util.ArrayList; import java.util.Arrays; public class Main { public static void main(String[] args) { String dir = "D:\\Video\\Смешарики"; File[] subdirectories = getFiles(dir, "avi"); for (File directory : subdirectories) System.out.println(directory.getPath()); } public static File[] getFiles(String dir, String extension) { File directory = new File(dir); if (!directory.exists() || !directory.isDirectory()) return new File[0]; FileFilter extFileFilter = (file) -> file.isFile() && file.getName().toLowerCase().endsWith("." + extension.toLowerCase()); ArrayList<File> returnFiles = new ArrayList<>(); File[] rootExt = directory.listFiles(extFileFilter); if (rootExt != null) returnFiles.addAll(Arrays.asList(rootExt)); File[] rootDirectories = directory.listFiles(File::isDirectory); if (rootDirectories == null) rootDirectories = new File[0]; ArrayList<File> directories = new ArrayList<>(Arrays.asList(rootDirectories)); while (directories.size() != 0) { ArrayList<File> newDirectories = new ArrayList<>(); for (File subDirectory : directories) { File[] subExt = subDirectory.listFiles(extFileFilter); if (subExt != null) returnFiles.addAll(Arrays.asList(subExt)); File[] subDirectories = subDirectory.listFiles(File::isDirectory); if (subDirectories == null) subDirectories = new File[0]; newDirectories.addAll(Arrays.asList(subDirectories)); } directories = newDirectories; } return returnFiles.toArray(File[]::new); } }