具体请看代码实现,挺简单的。
package com.bz.a;import java.io.File;
/*** 递归算法实现目录树的遍历*/
public class Recursion {public static void main(String[] args) {Recursion r = new Recursion();String root = "E:\\test";System.out.println(root);r.outCatalogue(root);}/*** 将当前路径的所有目录输出* @param path 要遍历的路径名*/File mainFile = null;//第一个文件、上层文件int rank = 0;//空格数String blank;//空格public void outCatalogue(String path) {mainFile = new File(path);//只是一个空目录或者只是一个文件if (mainFile.listFiles() == null) {System.out.println(mainFile.getName());return;}for (File childFile : mainFile.listFiles()) {if (childFile.isDirectory()) {// 有多少级目录就循环多少个空格rank = childFile.getParent().split("\\\\").length;//blank = forblank(rank);System.out.println(blank + "目录:" + childFile.getName());this.outCatalogue(childFile.getPath());//将当前目录传入递归。如当前目录2052,如果当前目录不存在子目录,则往下执行//循环可执行文件for (File executable : childFile.listFiles()){if(executable.isFile()){rank = executable.getParent().split("\\\\").length;// \\\\——>\blank = forblank(rank);System.out.println(blank + "-可执行文件:" + executable.getName());}}}}}public String forblank(int rank){// 缩进空格String blank = "";for (int i = 0; i < rank; i++) {blank = blank + " ";}return blank;}
}