黑马程序员技术交流社区
标题:
文件夹的层级打印(笔记)
[打印本页]
作者:
木子小四
时间:
2016-4-13 19:03
标题:
文件夹的层级打印(笔记)
需求:从键盘接收一个文件夹路径,把文件夹中的所有文件以及文件夹的名字按层级打印, 例如:
* 把文件夹中的所有文件以及文件夹的名字按层级打印
=======================================================
package com.heima.test_kaoshi;
import java.io.File;
import java.util.Scanner;
public class Test8 {
/**
* 需求:从键盘接收一个文件夹路径,把文件夹中的所有文件以及文件夹的名字按层级打印, 例如:
* 把文件夹中的所有文件以及文件夹的名字按层级打印
*
* 分析:
* 创建键盘录入对象,并判断是否合法
* 获取到路径下的文件夹
* 创建文件对象数组
* 遍历数组
* 首先不管是文件还是文件夹都要打印
* 如果是文件夹的话,调用递归的同时,将层级+1,调用递归,打印制表符"\t"
*/
public static void main(String[] args) {
File f = method();
print(f,0);
}
public static void print(File f,int lev) {
//创建文件对象数组
File[] f1 = f.listFiles();
//遍历数组
for(File f2 : f1){
for(int i = 0;i<lev;i++){
System.out.print("\t");
}
//不管是文件还是文件夹,就打印
System.out.println(f2.getName());
//如果是文件夹的话,调用递归
if(f2.isDirectory()){
print(f2,lev+1);
}
}
}
//键盘录入方法
public static File method(){
Scanner sc = new Scanner(System.in);
System.out.println("输入正确的文件夹路径...");
String line = sc.nextLine();
//创建文件
File f = new File(line);
while (true){
if(!f.exists()){
System.out.println("输入错误,路径不存在,请重新输入");
}else if(f.isFile()){
System.out.println("输入错误,这是个文件路径,请重输入");
}else if(f.isDirectory()){
break;
}
}
return f;
}
}
复制代码
作者:
木子小四
时间:
2016-4-13 19:04
做这题的时候,循环打印制表符这一块,有点晕。。。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2