FilenameFilter 文件过滤器的用法
来源:互联网 发布:windows连不上sens 编辑:程序博客网 时间:2024/05/20 13:06
FilenameFilter 是一个文件过滤器的接口,使用这个接口必须先实现 accept 这个方法
boolean accept(File dir, String name)
测试指定文件是否应该包含在某一文件列表中。
通过一个类来实现FilenameFilter 接口代码如下:
/** * @author L.Eric * 实现此接口的类实例可用于过滤器文件名。Abstract Window Toolkit 的文件对话框组件使用这些实例过滤 File 类的 list 方法中的目录清单。 */class MyFileFilter implements FilenameFilter{private String ext;public MyFileFilter(String ext) {this.ext = ext;}//覆盖accept方法,/** * 测试指定文件是否应该包含在某一文件列表中 * 当且仅当该名称应该包含在文件列表中时返回 true;否则返回 false。 * */@Overridepublic boolean accept(File dir, String name) {return !name.endsWith(ext);}}MyFileFilter 类必须有一个显式的构造方法。 用于把文件的需要过滤的名字传入。 当然你要以其他形式过滤也可以,只要在accept这个方法进行修改就可以了!
那么如何使用MyFileFilter 这个类呢?很简单。
熟悉API的人就知道:
File f = new File("目录或文件名");
f.listFiles(); 这里有三个构造函数分别是
listFiles()
返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。
listFiles(FileFilter filter)
返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录。
listFiles(FilenameFilter filter)
返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录
它们返回的值都是 File[]
我们通过第三个构造函数就可以把MyFileFilter类 传入。 接下来我来个例子说明一下:
public class FileTest {//这个方法才用递归遍历/** * @param pathname 目录或者文件路径 * @param space 父目录和子目录的空格,便于打印出来观察 * @param ext 代表要过滤的文件的扩张名 */ public static void readALLFilesForFilter(String pathname, String space, String ext){File f = new File(pathname);//通过过滤器来获得文件的目录和文件File[] fileList = f.listFiles(new MyFileFilter(ext)); //new 一个过滤器传入就ok了for(File f1 : fileList){if(f1.isFile()) {System.out.println(space + "-" + f1.getName());}//判断是否为目录if(f1.isDirectory()) {System.out.println(space + "-" + f1.getName());readALLFiles(f1.getPath().toString(), space +" ");}}}public static void main(String[] args) {FileTest.readALLFilesForFilter("D://", " ", ".avi");}}
- FilenameFilter 文件过滤器的用法
- File的用法二:文件过滤器之FileNameFilter的用法
- java--FilenameFilter文件过滤器
- java--FilenameFilter文件过滤器
- 文件过滤器 FilenameFilter
- Java--FilenameFilter文件过滤器
- java--FilenameFilter文件过滤器
- 批量改名及FilenameFilter文件过滤器基本用法
- filenamefilter 过滤器的使用
- FilenameFilter的用法
- FilenameFilter的用法
- FilenameFilter的用法
- FilenameFilter的用法
- Command设计模式-文件过滤器FilenameFilter
- FilenameFilter 文件过滤器--指定目录过滤后缀名
- IO流-FilenameFilter接口--文件过滤器的使用---筛选特定文件
- 【练手】关于FileNameFilter的用法
- [疯狂Java]I/O:File(文件类,也是文件流的节点)、FilenameFilter(文件过滤器)
- The Android ION memory allocator - Only an Introduction
- CI框架 简介
- iOS 6 Tarbar 背景图片问题
- isnull sql
- Oracle 数据库 Record is locked by another user 问题解决办法
- FilenameFilter 文件过滤器的用法
- HDU1198--Farm Irrigation
- 外包网
- 关于Erlang Socket的三种消息接收模式
- Oracle安全 - SCN的可能最大值与耗尽问题
- jquery and js
- sqlserver grant 语句
- 指针函数与函数指针的区别
- HDU 2527 Safe Or Unsafe (哈夫曼树)