java实现遍历文件目录,根据文件最后的修改时间排序,并将文件全路径存入List集合

package com.ultra.aliyun.control.main; import java.io.File; import java.util.ArrayList; import java.util.Arrays; import java.util.Comparator; import java.util.List; import org.apache.log4j.Logger; public class FileTest {         // 打印日志     private static Logger logger = Logger.getLogger(FileTest.class);          public static void main(String[] args) {                  // 定义list,用于存储数据文件的全路径         List<String> filelist = new ArrayList<String>();         String dataFileTempDir = "D:\\test";         // 得到返回文件全路径的list集合         List<String> list = getFiles(dataFileTempDir, filelist);         String dataFileTempPath = null;         for (int i = 0; i < list.size(); i++) {             // 数据文件在临时区的路径             dataFileTempPath = list.get(i);             System.out.println(i+"dataFileTempPath:"+dataFileTempPath);         }                }          /**      * 通过递归得到某一路径下所有的文件的全路径,分装到list里面      *       * @param filePath      * @param filelist      * @return      */     public static List<String> getFiles(String filePath, List<String> filelist) {         File root = new File(filePath);         if (!root.exists()) {             logger.info(filePath + " not exist!");         } else {             File[] files = root.listFiles();             Arrays.sort(files, new FileTest.CompratorByLastModified());               for (File file : files) {                 if (file.isDirectory()) {                     getFiles(file.getAbsolutePath(), filelist);                 } else {                     //logger.info("目录:" + filePath + "文件全路径:" + file.getAbsolutePath());                     filelist.add(file.getAbsolutePath());                 }             }         }         return filelist;     }           //根据文件修改时间进行比较的内部类     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;               }           }       }   }

猜你喜欢

转载自www.cnblogs.com/dauber/p/9466518.html