litesoft
@ 151
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
// This Source Code is in the Public Domain per: http://litesoft.org/License.txt package org.litesoft.util; import java.io.*; public class DirectoriesDepthFirst { public interface Visitor { public void process( File pDirectory ) throws IOException; } private Visitor mVisitor; public DirectoriesDepthFirst( Visitor pVisitor ) { Utils.assertNotNull( "DirectoriesDepthFirst.Visitor", mVisitor = pVisitor ); } public void process( File pDirectory ) throws IOException { if ( (pDirectory == null) || !pDirectory.isDirectory() ) { throw new IllegalArgumentException( "Not a Directory: " + pDirectory ); } LLprocess( pDirectory ); } private void LLprocess( File pDirectory ) throws IOException { File[] zFiles = pDirectory.listFiles( DirectoryUtils.DirsOnlyFileFilter.INSTANCE ); for ( File zFile : zFiles ) { LLprocess( zFile ); } mVisitor.process( pDirectory ); } } |