import java.io.File; import java.util.LinkedList; public class Test { public static void main(String[] args) { tree(new File("E:/"), 0); } public static void tree(File file, int level) { for (int i = 0; i < level; i++) { System.out.print("/t"); } if (file.isDirectory()) { System.out.println(file.getName() + "//"); if (file.list().length != 0) { File[] files = file.listFiles(); files = sort(files); for (File file2 : files) { tree(file2, level + 1); } } } else { System.out.println(file.getName()); } } public static File[] sort(File[] files) { LinkedList<File> list = new LinkedList<File>(); for (File file : files) { if (file.isDirectory()) { list.addFirst(file); } else { list.addLast(file); } } return list.toArray(new File[files.length]); } }