예제 #1
0
    private void search(File currentDirectory) {
      FileTreeIterator iter = new FileTreeIterator(currentDirectory);
      while (iter.hasNext()) {
        File file = iter.next();
        boolean accept = fileFilter.accept(file);
        synchronized (FileList.this) {
          if (searchID == searchCounter.get()) {
            if (accept) {

              int i =
                  searchConstraints == null
                      ? Collections.binarySearch(fileList, file)
                      : Collections.binarySearch(fileList, file, searchConstraints);
              if (i >= 0) {
                // already exists? great
              } else {
                fileList.add(-i - 1, file);
              }
            }
          } else {
            return;
          }
        }
      }
    }