for (final File child : root.listFiles()) {
if (child.isDirectory()) {
scanDirectory(child, cfl);
} else if (cfl.onAccept(child.getName())) {
try {
new Closing(new BufferedInputStream(new FileInputStream(child))).f(new Closing.Closure() {
public void f(final InputStream in) throws IOException {
cfl.onProcess(child.getName(), in);
}
});