以下では、カレントディレクトリ『"."』をベースにして、
ファイルを群を取得する時に、FileFilterインターフェイスを継承した匿名クラスを生成し、
その抽象メソッドacceptの実装で、ファイル拡張子が『"jpg"』を抽出させています。
その後、取得した配列は、更新時間の新しい順で並び替えています。
import java.io.File;
import java.io.FileFilter;
import java.util.Arrays;
import java.util.Comparator;
// 指定拡張子の画像ファイル群を、ファイル変更時間の新しい順で取得
public class Test {
static File [] getFiles_orderTime(String basePath) throws Exception{
File dir = new File(basePath);
//マッチする画像ファイル群を取得
File [] files = dir.listFiles(new FileFilter(){
@Override
public boolean accept(File file) {
if(file.isDirectory()) return false;
String name = file.getName().toLowerCase();
if(name.endsWith(".jpg") == false) return false;
return true;
}
});
//時間の新しい順で並び替えための比較オブジェクトを取得
Comparator <File> comparator = new Comparator <File>(){
@Override
public int compare(File o1, File o2) {
return -(int)(o1.lastModified() - o2.lastModified());//降順のマイナス指定
}
};
Arrays.sort( files , comparator);
return files;
}
//イメージタグの列挙用文字列を取得
static String getStringForImageTags(String basePath, File [] files){
String str = "";
for(File f : files){
str += "<img src='" + basePath + "/" + f.getName() + "'><br>\n";
}
return str;
}
public static void main(String args[]) throws Exception{
String basePath = ".";
File [] files = getFiles_orderTime(basePath);
String str = getStringForImageTags(basePath, files);
System.out.println(str);
}
}