import java.io.File;
import java.io.FilenameFilter;
public class A {
public static void main(String[] args) {
File file = new File("E:/workspace/aaa/src");
File[] listFiles = file.listFiles(new MyFileter());
for(File f : listFiles){
System.out.println(f.getName());
}
}
static class MyFileter implements FilenameFilter {
@Override
public boolean accept(File file, String filename) {
if (filename != null && filename.toLowerCase().endsWith(".java")) {
return true;
} else {
return false;
}
}
}
}
[JavaSE8基础 File FilenameFilter 筛选出指定后缀名的文件]
package jizuiku0;
import java.io.File;
import java.io.FilenameFilter;
/*
* @version V17.09
*/
public class Filter {
public static void main(String[] args) {
// 找到E:\迅雷下载\下载合集中文件名以.xlsx结尾的文件
String pathname = "E:\\迅雷下载\\下载合集";
File file = new File(pathname);
// 因为这里只筛选文件的名字,所以使用FilenameFilter接口
// 使用匿名类
// filesName中都是符合条件的文件的名字
String[] filesName = file.list(new FilenameFilter() {
// 这个函数是用来判断的
@Override
public boolean accept(File dir, String name) {
// TODO Auto-generated method stub
// dir -> E:\迅雷下载\下载合集
// name -> dir下 文件夹和文件的名字
System.out.println(dir + "---" + name);
// 是文件 并且 文件名以.xlsx结尾
return new File(dir, name).isFile() && name.endsWith(".xlsx");
}
});// 这里的分号容易被忘记
System.out.println("\n以.xlsx结尾的文件:");
// 遍历
for (String name : filesName) {
System.out.println(name);
}
}
}

image.png
list()方法源码
public String[] list(FilenameFilter filter) {
String names[] = list();
if ((names == null) || (filter == null)) {
return names;
}
List<String> v = new ArrayList<>();
for (int i = 0 ; i < names.length ; i++) {
if (filter.accept(this, names[i])) {
v.add(names[i]);
}
}
return v.toArray(new String[v.size()]);
}
网友评论