随笔-4  评论-15  文章-0  trackbacks-0
现在要求输入一个文件的目录,之后将里面所有的备份文件删除,备份文件都是以“.bak”或".BAK"结尾

package TestFile;

import java.io.File;
import java.io.FileFilter;

/**
 * @author 王业平
 * 用于过滤以.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);
 }
}

posted on 2009-04-23 13:54 王业平 阅读(1227) 评论(7)  编辑  收藏

评论:
# re: 关于FileFilter使用的一点心得 2009-04-23 15:04 | xx
这是什么字体,,,  回复  更多评论
  
# re: 关于FileFilter使用的一点心得 2009-04-23 15:17 | 王业平
@xx
我靠,你的问题这么专业,不屑于我的技术,虽然技术是次了点,你想说什么,就是只问字体,还是另有它意,字体里面就有啊,一试不就知道了,我也是随便用的。  回复  更多评论
  
# re: 关于FileFilter使用的一点心得 2009-04-23 15:27 | xx
@王业平
呵呵 关注过你的博客一段时间,看到你的字体比较特别而已,你写的东西不错,只是我提不出新的看法而已,不是不屑,不要误会,,,  回复  更多评论
  
# re: 关于FileFilter使用的一点心得 2009-04-23 15:37 | 王业平
谢谢啊,我说呢,怎么刚注册就有人关注了,原来我没注册之前就有老兄关照了,你是地球上第一个回复我blog的人,谢谢啊。我给你查了查,但是不知在你说的到底是哪个字体,所以你自己去查吧。哈哈,可以到word上试一试嘛。
  回复  更多评论
  
# re: 关于FileFilter使用的一点心得 2009-04-23 17:17 | lvq810
还是不要用indexOf(),如果遇到类似a.bak.txt的文件就会误删,可以使用endsWith()或substring(),还需要判断大小写字母.bak or .BAK  回复  更多评论
  
# re: 关于FileFilter使用的一点心得 2009-04-24 09:10 | 王业平
说的很有道理,多谢指点。用index不安全  回复  更多评论
  
# re: 关于FileFilter使用的一点心得 2009-04-29 09:27 | hongyong
mark  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: