Java读取目录文件并且按照时间进行排序

import java.io.File;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Date;
import java.util.List;
/**
 * 读取目录文件并且按照时间进行排序
 * @author 谈情
 */
public class ReadDirector {
 public static void main(String[] args){
    try { 
     //读取文件
     List filenames=ReadDirector.getFiles("D:/"); 
     if(filenames!=null)
     for(int i =0;i<filenames.size() && filenames.size()>0;i++){
      String str=(String)filenames.get(i);
      System.out.println("第"+(i<10?"0"+i:i+1)+"文件名是:"+str);
     }
    }catch (Exception e) {}
 }
 /**
  * 读取目录文件
  * @param dirname 目录名称
  * @return list集合
  */
 public static List getFiles(String dirname)throws Exception{
    List file_names=null;
    File dir=new File(dirname);
    if(dir.exists()){
     file_names=new ArrayList();
     File []files=dir.listFiles();     
     //排序
     Arrays.sort(files, new ReadDirector.CompratorByLastModified());   
     for(int i=0;i<files.length;i++){
   //获取当文件最后修改时间
   String creatime=ReadDirector.format("yyyy-MM-dd hh:mm:ss",new Date(files[i].lastModified()));  
      if(files[i].isHidden()){//判断是隐藏文件
          file_names.add("创建时间:"+creatime+"<=它是一个隐藏文"+"=>"+files[i].getName());
      }else if(files[i].isDirectory()){//判断是目录
          file_names.add("创建时间:"+creatime+"<=它是一个文件夹"+"=>"+files[i].getName());
      }else{//普通文件
          file_names.add("创建时间:"+creatime+"<=它是一个普文件"+"=>"+files[i].getName());
      }
     }
    }else{
     System.out.println("该目录没有任何文件信息!");    
    }   
    return file_names;
 }
 /**
  * 格式化时间
  * @param format 格式化显示样式
  * @param date 时间
  * @return
  */
 private static String format(String format, Date date) {
  SimpleDateFormat dateFormat = new SimpleDateFormat(format);
  return dateFormat.format(date);
  }
 /**
  * 进行文件排序时间
  * @author 谈情
  */
 private static class CompratorByLastModified implements Comparator<File>{   
  public int compare(File f1, File f2) {   
   long diff = f1.lastModified()-f2.lastModified();   
       if(diff>0)   
         return 1;   
       else if(diff==0)   
         return 0;   
       else  
         return -1;   
       }   
  public boolean equals(Object obj){   
   return true;   
  }   
   } 
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值