20994cf07875001d1e98a7c17f0c1d66

来自「java程序设计教程的源码」· 代码 · 共 39 行

TXT
39
字号
//【例10-2】  列出当前目录中带过滤器的文件名清单。
//程序清单10-2: FileFilterDemo.java
import java.io.*;

public class FileFilterDemo implements FilenameFilter {
	private String prefix = " ", suffix = " "; // 文件名的前缀、后缀

	public FileFilterDemo(String filterstr) {
		filterstr = filterstr.toLowerCase();
		int i = filterstr.indexOf('*');
		int j = filterstr.indexOf('.');
		if (i > 0)
			prefix = filterstr.substring(0, i);
		if (j > 0)
			suffix = filterstr.substring(j + 1);
	}

	public static void main(String args[]) throws Exception {
		// 创建带通配符的文件名过滤器对象
		 FileFilterDemo filter= new FileFilterDemo("w*abc.txt");
		File f1 = new File("");
		File curdir = new File(f1.getAbsolutePath(), "");// 当前目录
		System.out.println(curdir.getAbsolutePath());
		String[] str = curdir.list(filter);// 列出带过滤器的文件名清单
		for (int i = 0; i < str.length; i++)
			System.out.println("\t" + str[i]);
	}

	public boolean accept(File dir, String filename) {
		boolean yes = true;
		try {
			filename = filename.toLowerCase();
			yes = (filename.startsWith(prefix)) && (filename.endsWith(suffix));
		} catch (NullPointerException e) {
		}
		return yes;
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?