package com.cfinkel.reports.util; import java.io.File; import java.util.regex.Pattern; /** * $Author:charles $ * $Revision:10429 $ * $Date:2006-07-26 18:00:43 -0400 (Wed, 26 Jul 2006) $ * <p/> * created: * User: charles * Date: May 1, 2006 * Time: 5:31:46 PM * * Iterates through a directory to find all files matching the appropriate pattern, * performs some function for each match */ public class DirectoryIterator { private final Pattern pattern; private final RunnerForFile runnerForFile; public void iterateForDirectory(File dir) throws RunnerException { if (dir.isDirectory()) { String[] children = dir.list(); for (String child : children) { iterateForDirectory(new File(dir, child)); } } else if (dir.toString().matches(pattern.pattern())) { runnerForFile.run(dir); } } public DirectoryIterator(Pattern pattern,RunnerForFile r) { this.pattern = pattern; this.runnerForFile = r; } }