public List showFileList()

in tsfile-viewer-web/src/main/java/org/apache/iotdb/ui/service/TsfileViewerService.java [65:120]


  public List<FileRecord> showFileList(String directoryPath) throws TsfileViewerException {
    directoryPath = getFullPath(directoryPath);
    List<FileRecord> fileRecordList = new ArrayList<>();
    File directoryFile = new File(directoryPath);
    if (!directoryFile.isDirectory()) {
      throw new TsfileViewerException(TsfileViewerException.PATH_NOT_DIRECTORY, "");
    }

    // 如果为空文件夹,直接返回
    if (directoryFile.listFiles() == null) {
      return fileRecordList;
    }

    for (File child : directoryFile.listFiles()) {
      if (child.isDirectory()) {
        FileRecord record = new FileRecord();
        record.setName(child.getName());
        record.setCanRead(child.canRead());
        record.setType(FileType.DIRECTORY);
        record.setStatus(LoadStatus.EXCLUDED);
        record.setSameFolder(true);
        fileRecordList.add(record);
      } else {
        if (child.getName().toLowerCase().endsWith(".tsfile")) {
          FileRecord record = new FileRecord();
          record.setName(child.getName());
          record.setCanRead(child.canRead());
          record.setType(FileType.FILE);
          if (tsfileViewerContainer.contain(child.getPath())) {
            record.setStatus(LoadStatus.LOADED);
          } else {
            record.setStatus(LoadStatus.UNLOAD);
          }
          // record.setPath(child.getPath());
          record.setSameFolder(true);
          fileRecordList.add(record);
        } else {
          continue;
        }
      }
    }
    fileRecordList =
        fileRecordList.stream()
            .sorted(
                (o1, o2) -> {
                  if (o1.getType() == FileType.DIRECTORY && o2.getType() == FileType.FILE) {
                    return -2;
                  } else if (o1.getType() == FileType.FILE && o2.getType() == FileType.DIRECTORY) {
                    return 2;
                  } else {
                    return 0;
                  }
                })
            .collect(Collectors.toList());
    return fileRecordList;
  }