java用户输入一个文件名称_练习:输出指定目录下的所有文件名称

问题:从键盘接收一个路径,将这个路径下的所有文件和文件夹的名字按照层级打印。

例如:

monkey1024

java

XXX.java

XXX.jpg

php

XXX.php

readme.txt

分析:获取路径File对象中的File数组

遍历数组,取得File对象

打印文件或文件夹的名字

如果是一个文件夹的话,使用递归重复上面的操作

代码:

import java.io.File;

import java.util.Scanner;

public class FileNames {

//用来记录缩进的次数

private static int count = 0;

public static void main(String[] args) {

File file = getFile();

getFileNames(file);

}

//每次调用该方法时,说明进入到一个新的文件夹的内部,需要增加一个缩进

private static void getFileNames(File file) {

//获取路径File对象中的File数组

File[] fileArray = file.listFiles();

//遍历数组,取得File对象

for(int i=0; i

//通过遍历count来控制打印几个缩进

for(int j=0; j

System.out.print("\t");

}

//打印文件或文件夹的名字

System.out.println(fileArray[i]);

//如果是一个文件夹的话,使用递归重复上面的操作

if(fileArray[i].isDirectory()){

count++;

getFileNames(fileArray[i]);

//方法执行结束后要减少缩进

count--;

}

}

}

//获取用户输入路径的File对象

private static File getFile() {

System.out.println("请输入一个文件夹路径:");

Scanner sc = new Scanner(System.in);

//获取用户输入的路径,用户输入的路径有可能是错误的,需要进行判断

while(true){

String input = sc.nextLine();

File file = new File(input);

if(!file.exists()){

System.out.println("您输入的文件路径有误,请重新输入文件路径:");

}else if(file.isFile()){

//如果用户输入的路径是一个文件

System.out.println("您输入的路径是一个文件,请输入一个文件夹的路径");

}else{

return file;

}

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值