Java IO 制作自己的文件过滤器
文件过滤器一般很少有人能用到,既然我学习到这里,就做一份 代码记录,以备以后会使用到。
该段代码-主要实现功能是:
自动过滤出 E 盘 下的 mp4 文件
具体的文件可以根据自己的需要该 需要修改的地方
第一处 : main 中的 File e = new File(" 你要过滤的地方 "); // 我选择的是整个 e 盘
举例 e 盘的视频文件夹 —> E:\\视频
第二处:MP4FileFilter 类 改名字(改一下,能够清楚 这个是在过滤 什么类型文件)
第三处:MP4FileFilter 类中的 .mp4 改为自己需要 过滤的
if (pathname.getName().endsWith(".mp4") || pathname.isDirectory())
// 如果是(文件后缀名 (".mp4")|| 文件夹)
就到这里吧,觉得有用的话,点个赞让更多需要的人看到
下面就是 需要的代码了
package File;
import java.io.File;
import java.io.FileFilter;
/**
* @program: 文件遍历
* @description: 文件过滤器
* 自动搜索文件夹 下面的 文件
* @author: 白嫖怪AE
* @create: 2021-11-19 20:33
**/
public class FileDemo {
public static void main(String[] args) {
// 创建 目标目录
File e = new File("E:\\");
// 自定义方法 listFile
listFiles(e);
}
/**
* listFiles
*
* @param file
*/
public static void listFiles(File file) {
// 1. 创建一个过滤器 并描述规则
FileFilter fileFilter = new MP4FileFilter();
// 2. 通过文件获取子文件夹
File[] files = file.listFiles(fileFilter); // 获得 E 盘下的文件夹
// 判断 files 是否为空,即 E盘1文件夹下是否为空
if (files != null && files.length > 0) {
// 遍历
for (File f : files) {
if (f.isDirectory()) {
// 如果 f 是文件夹, 递归
listFiles(f);
} else {
//如果 f 是文件, 打印 绝对路径
System.out.println("发现一个MP4文件:" + f.getAbsolutePath());
}
}
}
}// listFile
/**
* MP4 格式 文件
* 去实现接口 FileFilter
*/
static class MP4FileFilter implements FileFilter {
// 过滤器的规则 return false 文件不报留
@Override
public boolean accept(File pathname) {
if (pathname.getName().endsWith(".mp4") || pathname.isDirectory()) {
return true; // 如果是 MP4 ,保留
}
return false;
}
}//AVIFileFilter 类
}