/* * File: FileFun.java -- Demonstration of Recursion and returning an array * Vers: 1.0.0 dgg -- original coding * */ import java.io.File; /** * * @author David Green */ public class FileFun { /** * @param args the command line arguments */ public static void main(String[] args) { int [] total = new int[2]; File startingDirectory = new File( "."); total = countFiles( startingDirectory ); System.out.println( "The Directory " + startingDirectory.getName() + " has " + total[0] + " directories and " + total[1] + " files."); } public static int[] countFiles( File directory ) { File aFile; int [] localTotal = new int[] { 0, 0}; File [] files = directory.listFiles(); for ( int i = 0; i < files.length; i++) { aFile = files[i]; System.out.println("Now processing " + aFile.getName()); if ( aFile.isDirectory() ) { localTotal[0] += 1; int [] subTotal = countFiles(aFile); localTotal[0] += subTotal[0]; localTotal[1] += subTotal[1]; } else localTotal[1] += 1; } return localTotal; } }