Java 类org.apache.commons.io.DirectoryWalker 实例源码

项目:jqa-core-framework    文件:FileRuleSource.java   
public static List<RuleSource> getRuleSources(File rulesDirectory) throws IOException {
    final List<File> ruleFiles = new ArrayList<>();
    new DirectoryWalker<File>() {
        @Override
        protected void handleFile(File file, int depth, Collection<File> results) throws IOException {
            boolean isFile = file.isFile();
            boolean isAsciiDocFile = Type.AsciiDoc.matches(file);
            boolean isXMLFile = Type.XML.matches(file);

            if (isFile && (isAsciiDocFile || isXMLFile)) {
                results.add(file);
            }
        }

        public void scan(File directory) throws IOException {
            super.walk(directory, ruleFiles);
        }
    }.scan(rulesDirectory);

    List<RuleSource> ruleSources = new LinkedList<>();

    for (File ruleFile : ruleFiles) {
        ruleSources.add(new FileRuleSource(ruleFile));
    }

    return ruleSources;
}