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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

/*
* 从键盘输入接受一个文件夹路径, 打印出该文件夹下所有的.java文件名
*/
public class Test4 {
public static void main(String[] args){
  File dir = getDir();
  printJAVAFile(dir);
}
//File dir , 从键盘录入的文件夹路径,
public static void printJAVAFile(File dir){   
  //获取dir路径下所有的文件和文件夹
  File[] subFile = dir.listFiles();
  for(File subFile : subFiles){
   
   if(subFile.isFile() && subFile.getName().endsWith(".java")){
    System.out.println(subFile);
   }else if(dir.isDirectory()){
    printJAVAFile(subFile);
   }
  }
}
public static File getDir(){
  Scanner sc = new Scanner(System.in);
  System.out.println("请输入一个文件夹路径");
  
  while(true){
   String line = sc.nextLine();
   File dir = new File(line);
   if(! dir.exists()){
    System.out.println("输入错误, 请重新输入");
   }else if(dir.isFile()){
    System.out.println("输入错误, 请重新输入");
   }else{
    return dir;
   }
  }
}
}

评分

参与人数 1黑马币 +1 收起 理由
杨佳名 + 1

查看全部评分

3 个回复

倒序浏览
自己先顶一下:P
回复 使用道具 举报
//File dir , 从键盘录入的文件夹路径,
public static void printJAVAFile(File dir){   
  //获取dir路径下所有的文件和文件夹
  File[] subFile = dir.listFiles();
  for(File subFile : subFiles){
   
   if(subFile.isFile() && subFile.getName().endsWith(".java")){
    System.out.println(subFile);
   }else if(subFile .isDirectory()){//这里错了
    printJAVAFile(subFile);
   }
  }
}
回复 使用道具 举报
  1. else if(dir.isDirectory()){
  2.                     printJAVAFile(subFile);
复制代码

dir当然是路径了,还有不是以.java结尾的文件呢? 还需要else
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马