private static List<String> doListByFileExtensionRecursive( final List<String> result, final Path pathFromFileSystem, final String glob) { try { try (DirectoryStream<Path> stream = Files.newDirectoryStream(pathFromFileSystem, glob)) { for (Path entry : stream) { result.add(entry.toAbsolutePath().toString()); } } try (DirectoryStream<Path> stream = Files.newDirectoryStream(pathFromFileSystem)) { for (Path entry : stream) { if (Files.isDirectory(entry)) { doListByFileExtensionRecursive(result, entry, glob); } } } return result; } catch (IOException ex) { return Exceptions.handle(List.class, ex); } }