public List listFiles()

in pekko-connectors-sample-rotate-logs-to-ftp/src/main/java/playground/filesystem/impl/JimfsFtpFile.java [251:294]


  public List<FtpFile> listFiles() {

    // is a directory
    if (!Files.isDirectory(path)) {
      return null;
    }

    // directory - return all the files
    DirectoryStream<Path> filesStream = null;
    try {
      filesStream = Files.newDirectoryStream(path);
    } catch (IOException t) {
      LOG.error(t.getMessage());
    }

    if (filesStream == null) {
      return null;
    }

    List<Path> files = new ArrayList<>();
    for (Path path : filesStream) {
      files.add(path);
    }

    // make sure the files are returned in order
    Collections.sort(files, new Comparator<Path>() {
      public int compare(Path o1, Path o2) {
        return o1.getFileName().compareTo(o2.getFileName());
      }
    });

    // get the virtual name of the base directory
    final String virtualFileStr =
        getAbsolutePath().charAt(getAbsolutePath().length() - 1) != '/'
            ? getAbsolutePath() + '/' : getAbsolutePath();

    // now return all the files under the directory
    List<FtpFile> virtualFiles = new ArrayList<>(files.size());
    for (Path file : files) {
      String fileName = virtualFileStr + file.getFileName();
      virtualFiles.add(new JimfsFtpFile(fileName, file, user));
    }
    return virtualFiles;
  }