使用FileFilter查找文件系统
2007-03-15 18:56
302 查看
如果你想快速地从一个文件结构中找出指定类型的所有文件,可使用 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一起使用。如果这样做的话,你将必须去写一个标准的适配器。
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一起使用。如果这样做的话,你将必须去写一个标准的适配器。
相关文章推荐
- Linux系统中使用fdupes来查找并删除重复文件
- linux下使用find命令根据系统时间查找文件用法
- linux系统中find命令使用示例(linux查找文件)
- Linux基础教程 linux下使用find命令根据系统时间查找文件用法
- Linux系统文件查找命令find的基本使用及其高级用法
- Linux基础教程 linux下使用find命令根据系统时间查找文件用法
- liunx基本命令(文件系统的使用和查找命令)
- linux下使用find命令根据系统时间查找文件用法
- C下学生管理系统:从文件中读取30位学生的信息(含邮箱),并实现简单的增、删、查找、统计(邮箱使用人数)。---附程序哦!
- 在linux系统中,如何使用【find】命令精确查找文件?
- python下学生管理系统:从文件中读取30位学生的信息(含邮箱),并实现简单的增、删、查找、统计(邮箱使用人数)。---附程序哦!
- Linux系统中 查找目录下的所有文件中是否含有某个字符串
- MyEclipse使用总结——MyEclipse文件查找技巧
- 文件系统 | 如何使用网络根文件系统启动开发板?
- 求助:查找系统中所有在今天(9月3日)中午12:00后创建的文件
- Windows到Linux之旅:第6部分.使用文件系统
- 使用Gnupg对Linux系统中的文件进行加密
- 文件系统占用空间与使用空间不一致的解决
- 图文介绍Windows系统下使用 Github账户 + msysgit + TortoiseGit 进行文件管理的方法。
- 进入到文件系统,使用mount命令挂载到Linux不成功。出现 failed: No such device