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