A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 睢园绿竹 中级黑马   /  2016-1-23 23:44  /  508 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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;
                        }
                }
        }
}
这个代码哪里出错了?

1 个回复

正序浏览
else if(subfile.isDirectory()){
                                fun(dir);
                        }
里的dir改成subfile
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马