黑马程序员技术交流社区

标题: File类递归 [打印本页]

作者: losttemp    时间: 2016-5-23 22:10
标题: File类递归
**
* 需求:从键盘输入接收一个文件夹路径,打印出该文件夹下所有的.java文件名
*
* 分析: 从键盘接收一个文件夹路径 1
* ,如果录入的是不存在,给与提示
* 2,如果录入的是文件路径,给与提示
* 3,如果是文件夹路径,直接返回
*
* 打印出该文件夹下所有的.java文件名 1,获取到该文件夹路径下的所有的文件和文件夹,
* 存储在File数组中
*  2,遍历数组,对每一个文件或文件夹做判断
* 3,如果是文件,并且后缀是.java的,就打印
* 4,如果是文件夹,就递归调用
*/

public class Test11 {
        public static void main(String[] args) {
      File dir =getDir();
                printDir(dir);
        }

        public static void printDir(File dir) {
                //1,获取到该文件夹路径下的所有的文件和文件夹,
                File[] file=dir.listFiles();
                //2,遍历数组,对每一个文件或文件夹做判断
                for (File file2 : file) {
                        if(file2.isFile()&&file2.getName().endsWith(".java")){
                                System.out.println(file2);
                        }else if(file2.isDirectory()){
                                printDir(file2);
                        }
                }
        }

        public static File getDir() {
                //从键盘接收一个文件夹路径
                Scanner sc =new Scanner(System.in);
                System.out.println("请输入文件夹路径");
                while(true){
                String str=sc.nextLine();
                File file =new File(str); //封装成file对象
                 //1,如果录入的是不存在,给与提示
                if(!file.exists()){
                        System.out.println("您输入的文件夹路径不存在");
                }else if(file.isFile()){
                        System.out.println("您输入的是文件路径,请重新输入");
                }else{
                        return file;
                }
                }
               
        }
}
作者: 来自0419的高兴    时间: 2016-5-23 22:30
这个厉害,get
作者: TS-松子    时间: 2016-5-23 23:17
思路真清晰。
作者: 蓝色风信子    时间: 2016-5-23 23:45
可以,很好.




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2