实现列出指定文件下的所有目标,并且有层次关系在控制台显示
import java.io.File;import java.util.ArrayList;import java.util.List;public class TestIO7 {//用于判断目录或文件所处的层次private static int time;private static void listAllFiles(File f){//File[] fs = f.listFiles();if(f.isFile()||f.list().length==0){return ;}else{File[] fs = f.listFiles();File[] fs2 = sort(fs);for(File f2:fs2){StringBuffer sb = new StringBuffer();if(f2.isFile()){sb.append(getTabs(time));sb.append(f2.getName());}else{sb.append(getTabs(time));sb.append(f2.getName());sb.append("\\");}System.out.println(sb.toString());if(f2.isDirectory()){time++;listAllFiles(f2);time--;}}}}private static File[] sort(File[] f){List<File> list = new ArrayList<File>();for(File ff : f){if(ff.isDirectory()){list.add(ff);}}for(File ff:f){if(ff.isFile()){list.add(ff);}}return list.toArray(new File[f.length]);}private static String getTabs(int time){StringBuffer sb = new StringBuffer();for(int i=0;i<time;i++){sb.append("\t");}return sb.toString();}public static void main(String[] args) {//TestIO7 test = new TestIO7();listAllFiles(new File("c:/wds"));}}