黑马程序员技术交流社区
标题:
练习
[打印本页]
作者:
ZZT
时间:
2016-4-29 00:13
标题:
练习
package com.zzt;
import java.io.File;
import java.util.Scanner;
public class Study2 {
/***从键盘输入接收一个文件夹路径,打印出该文件夹下所有的.java文件名
*使用递归
*分析:
* 从键盘接收一个文件夹路径
* 1,如果录入的是不存在,给与提示
* 2,如果录入的是文件路径,给与提示
* 3,如果是文件夹路径,直接返回
*
* 打印出该文件夹下所有的.java文件名
* 1,获取到该文件夹路径下的所有的文件和文件夹,存储在File数组中
* 2,遍历数组,对每一个文件或文件夹做判断
* 3,如果是文件,并且后缀是.java的,就打印
* 4,如果是文件夹,就递归调用
*/
public static void main(String[] args) {
File fir = getDir();
prientjavaFile(fir);
}
public static File getDir(){
Scanner sc = new Scanner (System.in); //创建键盘录入对象
System.out.println("请输入一个路径");
File fir = null;
while(true){
String line = sc.nextLine();
fir = new File(line); //封装成File对象
if(!fir.exists()){ //如果路径不存在
System.out.println("您录入的路径是不存在的,请重新输入正确的路径");
}else if(fir.isFile()){ //如果是文件
System.out.println("您录入的是文件,不是有效地文件夹路径,请重新输入");
}else{
break;
}
}
return fir;
}
public static void prientjavaFile(File fir){
//获取到该文件夹路径下的所有的文件和文件夹,存储在File数组中
File[] subFiles = fir.listFiles();
//遍历数组,对每一个文件或文件夹做判断
if(subFiles != null){
for (File file : subFiles) {
if(file.isFile() && file.getName().endsWith(".java")){
System.out.println(file);
}else if(file.isDirectory()){
prientjavaFile(file);
}
}
}
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2