Метод file.listFiles()
возвращает String[]
только тогда, когда объект file
является объектом Directory
, если file
является объектом File
, он возвращает ноль.Вы можете просто изменить свой код следующим образом:
for (final File fileEntry : folder.listFiles()) {
if (fileEntry.isDirectory()) {
listFilesForFolder(fileEntry);
} else {
if (fileEntry.getName().endsWith(".txt")) {
System.out.println(fileEntry.getName());
}
}
}
, если вы можете использовать apache commons-io, будет легко использовать IOFileFilter
для фильтрации того, что вы хотите:
FileUtils.listFiles(folder, new IOFileFilter() {
@Override
public boolean accept(File file) {
return file.getName().endsWith(".txt");
}
@Override
public boolean accept(File file, String s) {
return true;
}
}, new IOFileFilter() {
@Override
public boolean accept(File file) {
return true;
}
@Override
public boolean accept(File file, String s) {
return true;
}
}).stream().forEach(file -> System.out.println(file.getName()));