需求:从键盘接收一个文件夹路径,把文件夹中的所有文件以及文件夹的名字按层级打印, 例如:
* 把文件夹中的所有文件以及文件夹的名字按层级打印
=======================================================- 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;
- }
- }
复制代码 |
|