package me.lzb.basic;
import java.io.File;
/**
* 给定一个目录,递归的列出下面所有的子目录和文件
*
* @author LZB
*/
public class FileList {
public void list(File f) {
System.out.println(f.getPath());
list(f, 0);
}
private void list(File file, int level) {
if (file.isDirectory()) {
print(file, level);
}
level++;
File[] files = file.listFiles();
for (int i = 0; i < files.length; i++) {
if (files[i].isDirectory()) {
list(files[i], level);
} else {
print(files[i], level);
}
}
}
private void print(File f, int level) {
System.out.println(getFileFormat(level) + f.getName());
}
private String getFileFormat(int level) {
StringBuffer sb = new StringBuffer();
if (level > 1) {
sb.append("|");
}
for (int i = 0; i < level - 1; i++) {
sb.append(" ");
}
if (level > 0) {
sb.append("|--");
}
return sb.toString();
}
}