FilenameFilter是一个文件过滤接口,可以根据文件后缀等特征进行过滤,将符合条件的文件筛选出来。使用FilenameFilter时,只需要定义一个类实现接口的accpt()方法,或者直接使用一个匿名类。
下面是示例代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
package com.qst.chapter01; import java.io.File; import java.io.FilenameFilter; public class FilenameFilterDemo { public static void main(String[] args) { // 根据路径名称创建File对象 File file = new File("C:\\Program Files\\Java"); // 得到文件名列表 if (file.exists() && file.isDirectory()) { // 显示该目录下所有文件列表 String[] allFileNames = file.list(); for (String name : allFileNames) { System.out.println(name); } System.out.println("--------------------"); // 创建FileNameFilter类型的匿名类,并作为参数传入到list()方法中 String[] filterFileNames = file.list(new FilenameFilter() { public boolean accept(File dir, String name) { // 对文件名进行过滤,文件名的后缀为.zip或.txt return (name.endsWith(".zip") || name.endsWith(".txt")); } }); System.out.println("过滤后的文件列表:"); for (String name : filterFileNames) { System.out.println(name); } } } } |