code: static List<Path> getFilesMatching(Path directory,
        String syntaxAndPattern, String excludesExt) throws IOException {
      PathMatcher matcher = directory.getFileSystem().getPathMatcher(syntaxAndPattern);
      List<Path> parts = Files.walk(directory)
          .filter(matcher::matches)
          .filter(path -> excludesExt == null || !path.toString().endsWith(excludesExt))
          .collect(Collectors.toList());
      Collections.sort(parts);
      return parts;
    }
docs: Returns all the files in a directory that match the given pattern, and that don't
  have the given extension.
  @param directory the directory to look for files in, subdirectories are not
  considered
  @param syntaxAndPattern the syntax and pattern to use for matching (see
  {@link java.nio.file.FileSystem#getPathMatcher}
  @param excludesExt the extension to exclude, or null to exclude nothing
  @return a list of files, sorted by name
  @throws IOException