〖JAVA经验〗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);

}

}

一起交流学习请访问:Tore_m_1206686_21115_1_1.html”>http://www.shangxueba.com/sTore_m_1206686_21115_1_1.html

再发展下来才有了:大霞美的花卉基地和清源山的花博园。

〖JAVA经验〗java认证:关于FileFilter使用的一点心得

相关文章:

你感兴趣的文章:

标签云: