question: void expand ( File dir , String [ ] files , boolean isUpdate ) { if ( files == null ) { return ; } for ( int i = 0 ; i < files . length ; i ++ ) { File f ; if ( dir == null ) { f = new File ( files [ i ] ) ; } else { f = new File ( dir , files [ i ] ) ; } if ( f . isFile ( ) ) { if ( entries . add ( f ) ) { if ( isUpdate ) entryMap . put ( entryName ( f . getPath ( ) ) , f ) ; } } else if ( f . isDirectory ( ) ) { if ( entries . add ( f ) ) { if ( isUpdate ) { String dirPath = f . getPath ( ) ; dirPath = ( dirPath . endsWith ( File . separator ) ) ? dirPath : ( dirPath + File . separator ) ; entryMap . put ( entryName ( dirPath ) , f ) ; } expand ( f , f . list ( ) , isUpdate ) ; } } else { error ( formatMsg ( "error.nosuch.fileordir" , String . valueOf ( f ) ) ) ; ok = false ; } } }
target:  Expands list of files to process into full list of all files that can be found by recursively descending directories.