JavaIO实现文件目录下的文件查找

这是一个使用 java.io 包来遍历目录文件的例子。

其实就是 java.io 包的简单使用。主要有三个例子,

一个是遍历所有文件

一个是获取包含指定关键字或后缀名的文件

一个是获取指定关键和后缀名名的文件

三个例子的主要步骤都是一样,具体如下:

1. 根据目录路径 String 构建目录 File

2. 使用目录 Filelist() 方法获取目录下所有文件和目录的名字数组 String[]

3. 根据名字 String 和目录 File,构建对应 File

4. 使用 File isDirectory() 判断是否是目录,是则递归,不是则打印。

 

第一个例子,遍历目录下所有文件

 1 public static void listDir(File dir){
 2     //System.out.println(dir.toString());
 3     if(dir.isDirectory()){
 4         String[] subFile = dir.list();
 5         for(String temp : subFile){
 6             File tempF = new File(dir, temp);
 7             if(tempF.isDirectory())
 8                 listDir(tempF);
 9             else {
10                 System.out.println("==>" + tempF);
11             }
12         }
13     }
14 }

测试结果如下:

 

第二个例子,遍历特定包含特定文件名或者后缀

 1 public static void listDir(File dir, String keyWordsOrSuffix){
 2     //System.out.println(dir.toString());
 3     if(dir.isDirectory()){
 4         String[] subFile = dir.list();
 5         for(String temp : subFile){
 6             File tempF = new File(dir, temp);
 7             if(tempF.isDirectory())
 8                 listDir(tempF, keyWordsOrSuffix);
 9             else {
10                 if(isTarget(temp, keyWordsOrSuffix)){
11                    System.out.println("==>" + tempF);
12                 }
13             }
14         }
15     }
16 }
17 
18 private static boolean isTarget(String key, String keyWords){
19     //System.out.println(key);
20     if(keyWords.indexOf(".") != -1){
21         // 判断文件后缀是否一样
22         if(key.endsWith(keyWords)){
23             return true;
24         }
25     }else{
26         // 判断文件名是否包含
27         if(key.contains(keyWords)){
28             return true;
29         }
30     }
31     return false;
32 }

测试结果如下所示(只显示.jpg文件)

  

第三个例子,获取包含特定名字和后缀的文件啊

 1 public static void listDir(File dir, String contain, String subffix){
 2     //System.out.println(dir.toString());
 3     if(dir.isDirectory()){
 4         String[] subFile = dir.list();
 5         for(String temp : subFile){
 6             File tempF = new File(dir, temp);
 7             if(tempF.isDirectory())
 8                 listDir(tempF, contain, subffix);
 9             else {
10                 if(temp.contains(contain) && temp.endsWith(subffix)){
11                     System.out.println("==>" + tempF);
12                 }
13             }
14         }
15     }
16 }

测试结果如下

posted @ 2022-04-23 15:27  哦客源  阅读(576)  评论(0)    收藏  举报