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