posts - 44,  comments - 48,  trackbacks - 0

目录列示器

本实例演示如何得到一个目录下的所有文件列表 .

1.       这里利用了 DirFilter 实现了 FilenameFilter 接口 , 因此必须继承 accept 的方法 .

2.       用到了匹配字符序列与正则表达式指定模式的类 Matcher,Pattern 所以要 java.util.regex 引入 .

实例程序 :

package javaio;

import java.io.*;

import java.util.*;

import java.util.regex.*;

 

public class DirList {

  public static void main(String[] args) {

    File path = new File("c:/");

    String[] list;

    if(args.length == 0){

      list = path.list();

    }

    else{

      // 这里将输入的参数作为过滤因子

      list = path.list(new DirFilter(args[0]));

    }

    for(int i = 0; i < list.length; i++){

      System.out.println(list[i]);

    }

  }

}

 

class DirFilter implements FilenameFilter {

  private Pattern pattern;

  public DirFilter(String regex) {

    pattern = Pattern.compile(regex);

  }

  public boolean accept(File dir, String name) {

    // 判断名为 name 的文件是不是符合过滤条件

    return pattern.matcher(new File(name).getName()).matches();/*matches() 尝试将整个区域 / 与模式匹配。 new File(name).getName() 得到 String 类的 name*/

  }

}

运行结果 :

Image00003.jpg

posted on 2006-08-24 19:29 摩西 阅读(215) 评论(0)  编辑  收藏

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


网站导航: