特定の拡張子のみを持つファイルを見つける方法
`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)); } } }