黑马程序员技术交流社区

标题: 练习 [打印本页]

作者: 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