呼び出すとカレントディレクトリのファイル一覧と、一番古いファイルの情報を返す。
$ java -jar ~/NetBeansProjects/timestamper/dist/timestamper.jar web2epub.rb2012/12/09 13:51:29 JST txt2ruby.rb2012/11/27 8:43:37 JST rsstalk.rb2012/10/27 8:54:12 JST openjtalk.rb2011/11/25 21:36:04 JST txt2kunten.rb2012/11/26 14:42:15 JST open_jtalk.rb2012/10/27 7:58:04 JST open_jtalk2.rb2011/11/25 21:36:04 JST secondlife.rb2011/10/16 15:04:00 JST ファイル総数:8 もっとも古いファイル:secondlife.rb(2011/10/16 15:04:00 JST) $
ふう。
/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package timestamper; import java.io.File; import java.text.DateFormat; import java.util.ArrayList; import java.util.Date; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * ファイル一覧を取得してタイムスタンプを返す。ただそれだけ。 * @author hachikun */ public class Timestamper { /** * @param args the command line arguments */ public static void main(String[] args) { ArrayList<String> d = DirList("."); String oldername = ""; long oldertime = -1; for(int i=0;i<d.size();i++){ long l = readLastModified(d.get(i)); if(oldertime == -1){ oldertime = l; }else{ if(oldertime > l){ oldertime = l; oldername = d.get(i); } } System.out.println(d.get(i) + "\t" + time2asctime(l)); } System.out.println("ファイル総数:"+d.size()); System.out.println("もっとも古いファイル:"+oldername+"("+time2asctime(oldertime)+")"); } private static String time2asctime(long i){ Date d = new Date(i); DateFormat df=DateFormat.getDateTimeInstance (DateFormat.LONG,DateFormat.LONG); return(df.format(d)); } private static long readLastModified(String fn){ File f = new File(fn); long r = f.lastModified(); return r; } private static ArrayList DirList(String path) { //返り値は配列で ArrayList<String> pats = new ArrayList<String>(); //パス名のオブジェクト化 File dir = new File(path); //ディレクトリかどうか判定 if (!dir.isDirectory()) { System.out.println("ディレクトリではないか、" + "または存在しません。"); } else { //再帰的リスト String[] contents = dir.list(); Pattern pattern = Pattern.compile(".+rb$"); for (int i = 0; i < contents.length; i++) { Matcher matcher = pattern.matcher(contents[i]); //boolean b= matcher.matches(); if (matcher.matches() == true) { //System.out.println(contents[i]); pats.add(contents[i]); } } } return pats; } }