IOUtils.java 806 Bytes
package ipipan.clarin.tei.api.io;

import java.io.File;
import java.io.FileFilter;
import java.util.Arrays;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;

/**
 *
 * @author mlenart
 */
public class IOUtils {

	public static Iterable<File> getNKJPDirs(File root) {
		List<File> res = doGetAllDirs(root, NKJPDirFilter.getInstance());
		if (NKJPDirFilter.getInstance().accept(root))
			res.add(root);
		Collections.sort(res);
		return res;
	}

	private static List<File> doGetAllDirs(File root, FileFilter fileFilter) {
		List<File> res = new LinkedList<File>(Arrays.asList(root
				.listFiles(fileFilter)));
		if (res.isEmpty()) {
			for (File dir : root.listFiles(DirFileFilter.getInstance())) {
				res.addAll(doGetAllDirs(dir, fileFilter));
			}
		}
		return res;
	}
}