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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 rockybull 于 2015-12-17 20:29 编辑

简单利用File类和递归显示指定文件夹中指定扩展名的文件的路径。
递归就是方法自己调用自己。这个程序可以修改成固定的路径(如整个硬盘CDE盘),和多个扩展名(用||或连接)。
这个程序用到了File类中的方法,exists()判断路径是否存在。isFile()是否为文件。isDirectory()是否为文件夹。
listFiles()返回指定路径下的所有文件和文件夹的路径存在File[]数组中。
getName()返回路径文件名字符串。
String中的方法:
endsWith()是否以指定字符串结尾。

代码:

import java.io.File;                            //导入File和Scanner类
import java.util.Scanner;



public class T6 {                                                  //定义一个类


   public static void main(String[] args) {                           //main方法
     File f=getDir();                                                     //调用getDir()方法获取路径。
     print(f);                                                             调用print()输出指定扩展名的文件的路径
     System.out.println("over");
   }






public static void print(File f) {
     File[] f1 = f.listFiles();                                 //获取指定文件夹下的文件和文件夹的路径存在File数组。
     if(f1==null){                                                 //判断f1数组是否为空,如果为空跳出方法,避免空指针异常。

        return;
     }
     for (File file : f1) {                                           //增强for遍历数组,如果是以.mp3结尾的文件就输出该文件的路径。
        if(file.isFile() && file.getName().endsWith(".mp3"))
          System.out.println(file);
        else if(file.isDirectory())                                  //如果是文件夹,就用递归思想自己调用自己,继续遍历这个文件夹的内容。
          print(file);
     }
   }






public static File getDir() {                                     //获取用户输入的合法文件夹路径File
     Scanner sc=new Scanner(System.in);
     System.out.println("请输入文件夹路径");                     
     while(true) {                                                    //判断用户输入的路径是否是文件夹。
        String s=sc.nextLine();
        File f=new File(s);
        if(!f.exists())
          System.out.println("你输入的不是路径,请重新输入");
        else if(f.isFile())
          System.out.println("你输入的是文件路径,请重新输入");
        else
          return f;

     }
   }

}






1 个回复

正序浏览

回帖奖励 +1


很不错啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马