某一目录如/home/下有一系列文件,如a09052011.txt,a08302011.txt,a09042011.txt等,文件命名规则为a+MMDDYYYY.txt,需要找出时间戳最大的文件,如本例a09052011.txt,谢谢

解决方案 »

  1.   

    如果只创建一次 那么久取lastmodify最大的那个文件 如果频繁修改的话 只有按照文件名排序了
      

  2.   

    Comparator<File> comparator = new Comparator<File>(){
        public int compare(File file1, File file2){
            DateForamt formatter = new SimpleDateFormat("MMddyyyy");
            Date date1 = formatter.parse(file1.getName().substring(1));
            Date date2 = formatter.parse(file2.getName().substring(1));
            return date1.compareTo(date2);
        }
    }File file = new File("/home/");
    File[] files = file.listFiles();
    Arrays.sort(files,comparator);
      

  3.   

    一条语句里不好搞,写个小perl脚本轻松就搞定了
      

  4.   

    ls -a | sort -r | head -n 1
      

  5.   

    ls -A1rt | tail -n 1
      

  6.   

    谢谢大家的回答,不过日期格式是MMDDYYYY,月日年形式的,直接排序不行啊,谢谢!