/**
* 树形结构打印
*
* 思路:
* 在打印文件时,考虑当前文件或目录相对给定的目录的层级
* 每加深一层,多添加一个“-”操作
* 考虑目录的层级问题,使用递归
*/
public static void printTree(String filePath){
File file=new File(filePath);
if(!file.exists()){
System.out.println("非法路径");
}
if(file.isFile()){
//是文件
System.out.println("|"+file.getName());
}else{
//是目录
System.out.println("|"+file.getName());
printDir(file,0);
}
}
/**
*
* @param file 目录的file实例
* @param dept 当前的深度
*/
private static void printDir(File file,int dept){
String pre="|";
for(int i=0;i<=dept;i++){
pre+="-";
}
File[] files = file.listFiles();
for(int i=0;i<files.length;i++){
File file1=files[i];
System.out.println(pre+file1.getName());
if(file1.isDirectory()){
printDir(file1,dept+1);
}
}
}
public static void main(String[] args) {
String path="E:\\java\\IO";
printTree(path);
}
结果: