JAVA遍历文件路径下的所有文件,根据最后修改时间排序,并输出文件地址和最后修改时间
程序员文章站
2022-03-03 12:36:48
...
代码
import java.io.File;
import java.util.*;
public class FindLastUpdateFile {
public static void main(String[] args) {
String dataFileTempDir = "文件地址";
List<File> newfileList = new ArrayList<>();
List<File> filesList = getFilesList(dataFileTempDir, newfileList);
File[] files = filesList.toArray(new File[0]);
Arrays.sort(files, new FindLastUpdateFile.CompratorByLastModified());
for (File file : files) {
System.out.println(file.getAbsolutePath() + " 【" + new Date(file.lastModified()).toLocaleString() + "】");
}
}
public static List<File> getFilesList(String filePath, List<File> fileList) {
File root = new File(filePath);
if (!root.exists()) {
System.out.println(filePath + " not exist!");
} else {
File[] files = root.listFiles();
for (File file : files) {
if (file.isDirectory()) {
getFilesList(file.getAbsolutePath(), fileList);
} else {
fileList.add(file);
}
}
}
return fileList;
}
//根据文件修改时间进行比较的内部类
static class CompratorByLastModified implements Comparator<File> {
public int compare(File f1, File f2) {
long diff = f1.lastModified() - f2.lastModified();
if (diff > 0) {// 倒序排列为-1 正序为1
return -1;
} else if (diff == 0) {
return 0;
} else {// 倒序排列为1 正序为-1
return 1;
}
}
}
}
上一篇: 说说在 Spring 中如何基于 Java 类进行配置
下一篇: Linux获取文件最后修改时间