java认证:关于FileFilter使用的一点心得

企业动态
java认证:关于FileFilter使用的一点心得。
现在要求输入一个文件的目录,之后将里面所有的备份文件删除,备份文件都是以“.bak”或".BAK"结尾
package TestFile;
import java.io.File;
import java.io.FileFilter;
/**
*
* 用于过滤以.bak结尾或包含.bak的文件
* 返回值的含义是 当包含该字符串时返回true
*/
public class ListFilter implements FileFilter{
@Override
public boolean accept(File file) {
//测试指定的文件(夹)是否应该包含在指定的列表中(就是测定作为过滤的条件是否满足)
/*
* 如果是目录的话,直接返回true 表示是满足条件的一情况
*/
if(file.isDirectory()) return true;
/*
* 如果不是目录的话,通过判断在其名字里是否含有规定的字符,
* 因为string的index方法在不满足条件(不含有指定的字符)是返回-1
* 所以以此来确定是否满足条件
*/
String name=file.getName();
/*
* int index=name.indexOf(".bak");
* return index!=-1;
* 这种方法不安全,可能会删除文件名中还含有.bak的文件,备份文件还可以用.BAK结尾
*/
return name.endsWith(".bak")||name.endsWith(".BAK");
}
}
使用此类
package TestFile;
import java.io.File;
/**
* @author Administrator
* 涉及到递归调用
*/
public class BakDelete{
public static void main(String[] args){
BakDelete bd=new BakDelete();
bd.listBakFile(new File("E:\"));
}
public void listBakFile(File file){
File[] fs=file.listFiles(new ListFilter());
for(int i=0;i<fs.length;i++){
if(fs[i].isFile()){
System.out.println(fs[i].getAbsolutePath());//打印文件绝对路径
fs[i].delete();
}else{
//System.out.println(fs[i].getAbsolutePath());
listBakFile(fs[i]);
}
}
//System.out.println(fs.length);
}
}

【编辑推荐】

  1. 刚刚过了SCJP,分享我的经验体会!
  2. 菜鸟入门篇:如何迅速获取Java认证?
  3. JAVA考试认证:SCJP310-035考试心得
责任编辑:夏雨 来源: 考试大
相关推荐

2017-06-28 15:24:10

大数据数据分析心得

2013-08-13 14:11:23

2009-06-02 11:25:22

HibernateJPA映射

2009-06-17 14:36:02

学习Java心得

2012-03-27 08:49:19

Json

2009-08-12 18:10:33

C#类型转化

2012-07-12 10:49:53

项目管理

2014-06-04 10:48:38

Swift苹果iOS

2017-07-05 18:10:23

大数据分析思路心得

2013-09-11 16:29:02

产品经理产品运营

2011-10-25 10:51:08

私有云虚拟化公有云

2009-08-03 09:17:30

ASP.NET Ses

2011-07-14 16:17:47

AmoebaMySQL

2011-12-23 09:16:19

2011-07-18 16:33:20

sqlite

2022-04-06 07:14:29

区块链网络生态系统

2013-06-26 10:13:32

C语言结构体结构体偏移

2009-06-06 19:12:19

javaFileFilter搜索

2019-06-17 06:18:27

边缘计算物联网雾计算

2010-05-20 15:29:43

优化IIS
点赞
收藏

51CTO技术栈公众号