快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

使用FILEFILTER查找文件系统

假如你想迅速地从一个文件结构中找出指定类型的所有文件,可使用 java.io.FileFilter实现。




FileFilter是JDK 1.2的许多附加部分之一。这个简朴的接口用于一个文件是否被接受。它一个异常一般的方式,去找出一个文档系统。在FileFilter和其早期接口FilenameFilter间最大的不同就是:FileFilter使文件作为一个文件对象,而FilenameFilter使文件作为一个目录和一个字符串名被过滤。

例如:FileFilter接口包含如下方式:

boolean accept(File file);
而FilenameFilter包含如下方式:

boolean accept(File directory, String name);
一个简朴的文件过滤是已知文件扩展名,你可以使用FilenameFilter 接口,但它却难以知道这个文件名到底是一个文件还是一个目录。为了去解决这个问题,你需要去做一个文件对象,与其自己去做,不如使用FileFilter接口,如下是ExtensionFileFilter代码:

package com.generationjava.io.find;

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

public class ExtensionFileFilter implements FileFilter {

private String extension;

public ExtensionFileFilter(String extension) {
this.extension = extension;
}

public boolean accept(File file) {
if(file.isDirectory( )) {
return false;
}

String name = file.getName( );
// find the last
int idx = name.lastIndexOf(".");
if(index == -1) {
return false;
} else
if(index == name.length( ) -1) {
return false;
} else {
return this.extension.equals(name.substring(index+1));
}
}

}
下面的例子使用了上面的代码:

...
String dir = "..."; // directory of your choice
File file = new File(dir);
File[] files = file.listFiles(new ExtensionFileFilter("cfg"));

// files variable is now c:*.cfg if ´dir´ is c:
// that is, all the files in the specified directory ending in *.cfg
...

FileFilter有一个父类在javax.swing.filechooser,FileFilter是一个抽象类,常常和JFileChoosers一起使用。假如这样做的话,你将必须去写一个标准的适配器。
返回类别: 教程
上一教程: TOMCAT下配置MYSQL数据库连接池
下一教程: 20分钟认识猛虎脾气-JDK1.5新特性介绍

您可以阅读与"使用FILEFILTER查找文件系统"相关的教程:
· 使用FileFilter搜索文件
· 使用JSP完成文件可定制上载
· 如何使用JSP开发WEBMAIL系统
· 使用JSP开发WEBMAIL系统
· 使用递归方式删除文件
    微笑服务 优质保证 索取样品