国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

使用FileFilter查找文件系統

2019-11-18 14:29:07
字體:
來源:轉載
供稿:網友

  假如你想快速地從一個文件結構中找出指定類型的所有文件,可使用 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一起使用。假如這樣做的話,你將必須去寫一個標準的適配器。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 屯留县| 仁化县| 都江堰市| 炉霍县| 石首市| 上林县| 宁都县| 子长县| 南康市| 西华县| 昌都县| 阳谷县| 洛南县| 韶山市| 莒南县| 凉城县| 习水县| 天峻县| 安泽县| 灵山县| 阳城县| 烟台市| 兴化市| 定边县| 宜宾市| 祁东县| 赞皇县| 德阳市| 泰和县| 吉木乃县| 金门县| 永宁县| 连城县| 建水县| 西畴县| 乌拉特中旗| 洪洞县| 攀枝花市| 英吉沙县| 调兵山市| 炉霍县|