void descendFileSystem(File startDir) throws IOException {
		log.fine(String.format("FileSub.searchFiles(%s)%n", startDir));
		if (startDir.isDirectory()) {
			String name = startDir.getName();
			for (String dir : IGNORE_DIRS) {
				if (dir.equals(name)) {
					log.finer("IGNORING " + startDir);
					return;
				}
			}
			File[] list = startDir.listFiles();
			for (File f : list) {
				descendFileSystem(f);		// recurse
			}
		} else if (startDir.isFile()) {
			processFile(startDir);
		} else {
			System.err.printf("Warning: %s neither file nor directory, ignoring%n", startDir);
		}
	}