private FileInfo processFolder()

in agent/src/jetbrains/buildServer/swabra/snapshots/iteration/FileSystemFilesIterator.java [106:129]


  private FileInfo processFolder(File folder, boolean createFileInfo) throws IOException{
    if (!folder.exists()){
      return null;
    }
    final File[] files = folder.listFiles();
    if (files == null) {
      throw new IOException("Failed to get folder content for: " + folder);
    }
    final List<File> filesList = Arrays.asList(files);
    Collections.sort(filesList, new Comparator<File>() {
      public int compare(File o1, File o2) {
        final int res = FilesComparator.compareByType(o1.isFile(), o2.isFile());
        return res == 0 ? o1.getName().compareTo(o2.getName()) : res;
      }
    });
    myIterators.push(filesList.iterator());
    if (myVerboseLogging){
      LOG.info(String.format("Processing '%s'. It has %d files and folders", folder.getAbsolutePath(), files.length));
    }
    if (createFileInfo)
      return createFileInfo(folder);
    else
      return null;
  }