遍历目录(递归)

来源:互联网 发布:caffe pdf 编辑:程序博客网 时间:2024/05/16 17:17
遍历目录 ,目录中 ,先输出目录,后输出文件, 每层增加缩进 \t
package com.file;import java.util.List;import java.io.File;import java.util.ArrayList;public class ListAllFile {public static void deepList(File file, int level) {//每次递归进来先打印出目录或文件名System.out.println(getTabs(level) + file.getName()+ (file.isDirectory() ? "\\" : ""));//遍历为文件,递归结束条件if (file.isFile()) {return;}//如果为目录则遍历目录File[] files = getSortedChildFiles(file);level++ ;for (File f : files) {deepList(f, level);}}private static String getTabs(int level) {StringBuffer sb = new StringBuffer();for (int i = 0; i < level; i++) {sb.append("\t");}return sb.toString();}// 获得目录在前,文件在后的文件夹列表private static File[] getSortedChildFiles(File file) {File[] files = file.listFiles();List<File> list = new ArrayList<File>();for (File f : files) {if (f.isDirectory()) {list.add(f);}}for (File f : files) {if (f.isFile()) {list.add(f);}}return list.toArray(new File[files.length]);}public static void main(String[] args) {deepList(new File("D:/deepListTest"), 0);}}