S_a_k_Uの日記みたいなDB

~サクゥーと呼ばないで~

ファイルをタイムスタンプ順にソートする

あまりカッコよくなけど、単純にこんなコードで実現してみた。


#西暦31,690,708年くらいまでは使えるハズ

public static File[] sortTimestamp(final File[] files) {
    
    if ((files == null) || (files.length == 0)) {
        return null;
    }
        
    // タイムスタンプ+ファイル名のリストを生成する
    List<String> fileList = new ArrayList<String>();
    for ( int i = 0 ; i < files.length ; i++ ) {
        fileList.add(String.valueOf(1000000000000000000L + files[i].lastModified()) + "_" + files[i].getAbsolutePath());
    }
        
    // タイムスタンプ+ファイル名のリストをソートする(文字列比較で古いファイルから昇順に並ぶ)
    Collections.sort(fileList);
        
    // ソートされたリストからファイルの配列を生成する
    File[] ret = new File[files.length];
    for ( int i = 0 ; i < files.length ; i++ ) {
        ret[i] = new File(fileList.get(i).substring(20));
    }
        
    return ret;
        
}