特定の拡張子のみを持つファイルを見つける方法
`FilenameFilter`の例では、フォルダ「
c:\\ folder
」に「
.jpg
」拡張子を使用するファイルのみが表示されます。
package com.mkyong.io;
import java.io.** ;
public class FindCertainExtension {
private static final String FILE__DIR = "c:\\folder";
private static final String FILE__TEXT__EXT = ".jpg";
public static void main(String args[]) {
new FindCertainExtension().listFile(FILE__DIR, FILE__TEXT__EXT);
}
public void listFile(String folder, String ext) {
GenericExtFilter filter = new GenericExtFilter(ext);
File dir = new File(folder);
if(dir.isDirectory()==false){
System.out.println("Directory does not exists : " + FILE__DIR);
return;
}
//list out all the file name and filter by the extension
String[]list = dir.list(filter);
if (list.length == 0) {
System.out.println("no files end with : " + ext);
return;
}
for (String file : list) {
String temp = new StringBuffer(FILE__DIR).append(File.separator)
.append(file).toString();
System.out.println("file : " + temp);
}
}
//inner class, generic extension filter
public class GenericExtFilter implements FilenameFilter {
private String ext;
public GenericExtFilter(String ext) {
this.ext = ext;
}
public boolean accept(File dir, String name) {
return (name.endsWith(ext));
}
}
}