黑马程序员技术交流社区

标题: 关于递归的问题 [打印本页]

作者: 睢园绿竹    时间: 2016-1-23 23:44
标题: 关于递归的问题
package com.practice;

import java.io.File;
import java.util.Scanner;

public class Practice_digui2 {
        public static void main(String[] args) {
                /*
                 * 分析:
                 * 本函数分三部分
                 * 第一部分 主函数,内有两个方法调用,分别是fun():创建数组接收dir的文件列表,遍历并判断.java的文件
                 *                                                            getDir()用于创建键盘录入对象,当调用该方法时
                 * 键盘可以接受一个文件夹路径,并封装成一个file文件夹路径传递给fun()
                 * 第二部分fun()函数
                 * 第三部分getDir()函数
                 */
                File dir = getDir();
                fun(dir);
        }

        private static void fun(File dir) {
                File[] subFiles = dir.listFiles();
                //遍历数组
                for (File subfile : subFiles) {
                        if (subfile.isFile()&&subfile.getName().endsWith(".java")) {
                                System.out.println(subfile);
                        }else if(subfile.isDirectory()){
                                fun(dir);
                        }
                }
        }

        private static File getDir() {
                System.out.println("输入一个文件夹路径");
                Scanner sc = new Scanner(System.in);
                while(true){
                        String line = sc.nextLine();
                        File dir = new File(line);
                        if (dir.isFile()) {
                                System.out.println("输入的是文件名,请重新输入");
                        }else if(!dir.exists()){
                                System.out.println("输入的文件目录不存在");
                        }else{
                                return dir;
                        }
                }
        }
}
这个代码哪里出错了?
作者: olivec    时间: 2016-2-13 16:20
else if(subfile.isDirectory()){
                                fun(dir);
                        }
里的dir改成subfile




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