package test;
import java.io.File;
public class ShowDirectoryAndFiles {
private int fileLevel;//文件所在的层数
public String createPrintStr(String name,int level) {
String printStr = "";//输出的前缀
for(int i=0;i<level;i++) {
printStr = printStr + " ";
}
printStr = printStr+"- "+name;
return printStr;
}
/**
* 输出初始给定的目录
* @param dirPath 给定的目录
*/
public void printDir(String dirPath) {
// 将给定的目录进行分割
String[] dirNameList = dirPath.split("\\\\");
// 设定文件level的base
fileLevel = dirNameList.length;
//按格式化输出
for(int i=0;i<dirNameList.length;i++) {
System.out.println(createPrintStr(dirNameList[i],i));
}
}
/**
* 输出给定目录下的文件,包括子目录中的文件
* @param dirPath 给定的目录
*/
public void readFile(String dirPath) {
// 建立当前目录中文件的File对象
File file = new File(dirPath);
// 取得代表目录中所有文件的File对象数组
File[] list = file.listFiles();
//遍历file数组
for(int i=0;i<list.length;i++) {
if(list[i].isDirectory()) {
System.out.println(createPrintStr(list[i].getName(),fileLevel));
fileLevel++;
//递归子目录
readFile(list[i].getPath());
fileLevel--;
}else {
System.out.println(createPrintStr(list[i].getName(),fileLevel));
}
}
}
}