现在要求输入一个文件的目录,之后将里面所有的备份文件删除,备份文件都是以“.bak”或”.BAK”结尾
packageTestFile;
importjava.io.File;
importjava.io.FileFilter;
/**
*
*用于过滤以.bak结尾或包含.bak的文件
*返回值的含义是当包含该字符串时返回true
*/
publicclassListFilterimplementsFileFilter{
@Override
publicbooleanaccept(Filefile){
//测试指定的文件(夹)是否应该包含在指定的列表中(就是测定作为过滤的条件是否满足)
/*
*如果是目录的话,直接返回true表示是满足条件的一情况
*/
if(file.isDirecTory())returntrue;
/*
*如果不是目录的话,通过判断在其名字里是否含有规定的字符,
*因为string的index方法在不满足条件(不含有指定的字符)是返回-1
*所以以此来确定是否满足条件
*/
Stringname=file.getName();
/*
*intindex=name.indexOf(“.bak”);
*returnindex!=-1;
*这种方法不安全,可能会删除文件名中还含有.bak的文件,备份文件还可以用.BAK结尾
*/
returnname.endsWith(“.bak”)||name.endsWith(“.BAK”);
}
}
使用此类
packageTestFile;
importjava.io.File;
/**
*@authorAdministraTor
*涉及到递归调用
*/
publicclassBakDelete{
publicstaticvoidmain(Stringargs){
BakDeletebd=newBakDelete();
bd.listBakFile(newFile(“E:“”));
}
publicvoidlistBakFile(Filefile){
Filefs=file.listFiles(newListFilter());
for(inti=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);
}
}
一起交流学习请访问:Tore_m_1206686_21115_1_1.html”>http://www.shangxueba.com/sTore_m_1206686_21115_1_1.html
松树亭亭玉立的耸立在周围小草小花的中间,