private void process2(final File file) throws InterruptedException {
  if (file.isHidden()) {
    return;
  }
  if (file.isDirectory()) {
    if (log.isInfoEnabled())     log.info("Scanning directory: " + file);
    final File[] files=filter == null ? file.listFiles() : file.listFiles(filter);
    for (    final File f : files) {
      process2(f);
    }
  }
 else {
    accept(file);
  }
}

private void process2 ( final File file ) throws InterruptedException { if ( file . isHidden ( ) ) { return ; } if ( file . isDirectory ( ) ) { if ( log . isInfoEnabled ( ) ) log . info ( "Scanning directory: " + file ) ; final File [ ] files = filter == null ? file . listFiles ( ) : file . listFiles ( filter ) ; for ( final File f : files ) { process2 ( f ) ; } } else { accept ( file ) ; } }
scans file ( s ) recursively starting with the named file , and , for each file that passes the filter , submits the task .
