Возможно слишком нагромоздил
package com.javarush.task.task31.task3101;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
public class FileTree {
// our parent folder
private File parentFile = null;
private ArrayList<File> filesInFoldes = null; // list includes all files WHITHOUT directory
public FileTree(String parentPath) {
try {
parentFile = new File(parentPath);
if (!parentFile.exists() || !parentFile.isDirectory()) throw new FileNotFoundException();
filesInFoldes = new ArrayList<>();
} catch (FileNotFoundException e) {
e.printStackTrace();
System.err.println("File doesn't exists or it's not a directory!");
}
}
private void getListFiles(File parentFile) { // recursive search
File[] files = parentFile.listFiles();
for (File file : files) {
if (file.isDirectory()) getListFiles(file);
else {
if (file.getName().endsWith(".txt")) filesInFoldes.add(file); // add only .txt files
}
}
}
public ArrayList<File> getFilesInFoldes() {
this.getListFiles(parentFile);
return filesInFoldes;
}
public void printListFiles(ArrayList<File> files) {
if (files == null) throw new NullPointerException();
else {
for (File file : files) {
System.out.println(file);
}
}
}
}