// Project: Recursion // Module: fileinfo // Source code file: FileInfo.java // List file information in folder // and all subfolders. import java.io.File; import java.util.Calendar; public class FileInfo { public static void main(String[] args) { dir(new File("c:/")); } // Recursively list files in all subfolders. public static void dir(File file) { if (!file.isDirectory( )) { System.out.printf("%-20s %6d", file.getName( ), file.length( )); long millis = file.lastModified( ); Calendar c = Calendar.getInstance( ); c.setTimeInMillis(millis); int year = c.get(Calendar.YEAR); int month = c.get(Calendar.MONTH); int day = c.get(Calendar.DAY_OF_MONTH); int hour = c.get(Calendar.HOUR_OF_DAY); int min = c.get(Calendar.MINUTE); int sec = c.get(Calendar.SECOND); System.out.printf(" Last modified: %d/%d/%d %02d:%02d:%02d\n", month, day, year % 100, hour, min, sec); } else { System.out.println("Files in directory " + file.getName( ) + ":"); for (File f : file.listFiles( )) { dir(f); } } } }