首页 > 代码库 > Java实现简单文件过滤器

Java实现简单文件过滤器

输入路径查找该路径下的指定文件类型的文件

 

代码思路:

想要循环遍历文件夹下所有子文件夹,就要用到递归。

首先判断路径是否存在:

  是:获取文件

    判断是否文件夹:

      是:调用自身,继续获取子文件夹下内容

      否:判断文件后缀,符合则输出

  否:输出提示

 

 1 package com.hanqi.maya.util;
 2 
 3 import java.io.File;
 4 import java.util.Scanner;
 5 
 6 public class TestGuolv {
 7     public static void main(String[] args) {
 8         Scanner sc=new Scanner(System.in);
 9         System.out.println("请输入要查找的路径");
10         String s=sc.nextLine();
11         File file =new File(s);
12         filesum(file,1);
13     }
14     public static void filesum(File f,int len){
15 
16         if(f.exists()){//判断路径是否存在
17             File[] files=f.listFiles(); //获取路径下的文件名
18             for(File fi:files){ //循环输出文件名
19                 if(fi.isDirectory()){  //判断是否文件夹
20                     printBlank(len);  
21                     System.out.println(fi.getName()+"文件夹");
22                     filesum(fi,len+1);  //继续调用自身
23                 }else{
24                     printBlank(len);  //输出空格
25                     if(fi.getName().endsWith(".java")){//如果是文件则 判断是否“.java”后缀,是则输出
26                         System.out.println(fi.getName());
27                     }                    
28                 }
29             }
30         }else{
31             System.out.println("文件不存在!!!");
32         }
33     }
34     
35     public static void printBlank(int len){
36         for (int i = 0; i < len; i++) {//输出. 以区分文件夹层次
37             System.out.print(". ");
38         }
39         
40     }
41 }

 

技术分享

总结与问题:

昨天学到输出文件夹下所有文件,今天稍作改动变成了找出文件夹下指定后缀的文件。

又因为输出的时候没有层次,所以写了个循环用来在输出的文件前面加空格以便层次分明,再后来发现空格对汉字的层次不够分明,遇到汉字会缩进几个空格,但是用符号就不会这样。

还有如何控制指定后缀名的问题没有解决。

路漫漫其修远兮。

Java实现简单文件过滤器