import java.io.File;
import java.util.Scanner;
public class Demo11_Test2 {
/*
* 需求:从键盘输入接收一个文件夹路径,打印出该文件夹下所有的.java文件名
*/
public static void main(String[] args) {
File dir = getDir();
printJavaFile(dir);
}
/*
* 获取键盘录入的文件夹路径
* 返回值类型File
* 参数列表无
*/
public static File getDir() {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个文件夹路径");
while(true) { //定义无限循环
String line = sc.nextLine(); //将键盘录入的文件夹路径存储在Line中
File dir = new File(line); //封装成File对象,并对其进行判断
if(!dir.exists()) { //如果录入的是不存在的给与提示
System.out.println("录入的文件夹路径不存在,请重新录入");
}else if(dir.isFile()) { //如果录入的是文件路径,给与提示
System.out.println("录入的是文件路径,请重新录入");
}else {
return dir; //如果是文件夹路径,直接返回
}
}
}
/*
* 获取文件夹下的所有.java文件
* 1,返回值类型void
* 2,参数列表File dir
*/
public static void printJavaFile(File dir) {
File[] subFiles = dir.listFiles(); //获取到该文件夹路径下的所有文件和文件夹,存储在File中
for (File subfile : subFiles) { //遍历数组,对每一个文件或文件夹做判断
if(subfile.isFile() && subfile.getName().endsWith(".java")) {
System.out.println(subfile);
}else if(subfile.isDirectory()) { //如果是文件夹,就用递归调用
printJavaFile(subfile);
}
}
}
}
|
|