假设我在一个系统上(特别是Ubuntu)有一个特定的目录,里面存储其他程序生成的备份或日志。如何在Java中查找并打开最近创建(或修改)的文件作为
我需要一种解决方案,它不依赖于以时间戳或序列名称(如
File
?我需要一种解决方案,它不依赖于以时间戳或序列名称(如
log1、log2等
)命名文件。子目录将被忽略。File
?log1、log2等
)命名文件。子目录将被忽略。public File getLastModifiedFile(File directory) {
File[] files = directory.listFiles();
if (files.length == 0) return null;
Arrays.sort(files, new Comparator<File>() {
public int compare(File o1, File o2) {
return new Long(o2.lastModified()).compareTo(o1.lastModified());
}});
return files[0];
}
File file = getLastModifiedTime("C:\abcd");
long lastModified = file != null ? file.lastModified() : -1 // -1 or whatever convention you want to infer no file exists
这个问题的第二个答案应该可以满足您的需求:
stackoverflow.com/questions/2064694/how-do-i-find-the-last-modified-file-in-a-directory-in-java
file.lastModified()
给你一个特定文件的最后修改时间,你可以简单地获取每个文件的时间,然后循环遍历这些时间以找到“最新”的时间。
问题似乎是链接中提出的问题的重复。