2007-12-04
列出目录下的文件
关键字: java
如果想要查看一个目录列表,可以用两种方法列出File对象。如果我们调用不带参数的list方法,便可以获得此File对象包含的全部列表。然而,如果 我们想要获得一个受限列表,例如,想得到所有扩展名.java的文件,那么我们就需要用到“目录过滤器”,这个类会告诉我们怎样显示符合条件的File对 象。如下代码:
import java.io.*;
import java.util.*;
import java.util.regex.*;
public class DirList {
public static void main(String[] args){
File path = new File(".");
String[] list;
if(args.length == 0){
list = path.list();
} else {
list = path.list(new DirFilter(args[0]));
}
//Arrays.sort(list,new AlphabeticComparator());
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){
return pattern.matcher(new File(name).getName()).matches();
}
}
在这段代码里,DirFilter类实现了FilenameFilter接口。FilenameFilter接口如下所述:
public interface FilenameFilter {
boolean accept(File dir,String name);
}
这表示这种类型的对象一定要提供一个accept()方法。创建这个类的目的在于把accept( ) 方法提供给list使用,使list()可以回调accept(),进而可以决定哪些文件包含在列表中。
import java.io.*;
import java.util.*;
import java.util.regex.*;
public class DirList {
public static void main(String[] args){
File path = new File(".");
String[] list;
if(args.length == 0){
list = path.list();
} else {
list = path.list(new DirFilter(args[0]));
}
//Arrays.sort(list,new AlphabeticComparator());
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){
return pattern.matcher(new File(name).getName()).matches();
}
}
在这段代码里,DirFilter类实现了FilenameFilter接口。FilenameFilter接口如下所述:
public interface FilenameFilter {
boolean accept(File dir,String name);
}
这表示这种类型的对象一定要提供一个accept()方法。创建这个类的目的在于把accept( ) 方法提供给list使用,使list()可以回调accept(),进而可以决定哪些文件包含在列表中。
发表评论
- 浏览: 13664 次
- 性别:

- 来自: 上海

- 详细资料
搜索本博客
最新评论
-
毕业两年了——转正
是excel的数据导入数据库,技术难度比我的大 一般是牛人做个公用的直接调用
-- by lsdc2004 -
毕业两年了——从面试到接 ...
我也毕业两年了,在石家庄待了一年,现在在北京,过的不怎么样。唉!!!
-- by zsbfree -
毕业两年了——转正
”所有的业务逻辑代码还是放在action里 “不是不好,是很不好!!
-- by senbao18 -
毕业两年了——真正的挑战 ...
谢谢楼主提醒,珍惜学习时间!
-- by senbao18 -
毕业两年了——从面试到接 ...
进这家公司的第一工作就是装系统,就是这件简单的事我却做了两天,因为第一天硬盘处问 ...
-- by yanshiyi






评论排行榜