Ваш код излишне сложен, даже по стандартам до Java 8.В спецификации API не упоминаются какие-либо исключения, выдаваемые для недопустимых каталогов (вместо этого метод возвращает null
), поэтому нет причин добавлять эту обработку исключений.Кроме того, метод вернет null
, если файл не является каталогом, поэтому тест rootFolder.isDirectory()
также устарел.
Таким образом, получение нефильтрованного списка так же просто, как
File rootFolder = new File(dir);
String[] fileList = rootFolder.list();
и легко добавить фильтр, теперь вызывая File.list(FilenameFilter)
, используя функции Java 8:
File rootFolder = new File(dir);
String[] fileList = rootFolder.list((p, n) -> n.contains(fileNamePart));