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;               }           }       }   }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM