Java - 获取目录中的最新文件?
2022-08-31 22:18:44
有没有人有一个Java的片段可以返回目录中的最新文件(或者了解简化这类事情的库)?
有没有人有一个Java的片段可以返回目录中的最新文件(或者了解简化这类事情的库)?
下面的代码返回上次修改的文件或文件夹:
public static File getLastModified(String directoryFilePath)
{
File directory = new File(directoryFilePath);
File[] files = directory.listFiles(File::isFile);
long lastModifiedTime = Long.MIN_VALUE;
File chosenFile = null;
if (files != null)
{
for (File file : files)
{
if (file.lastModified() > lastModifiedTime)
{
chosenFile = file;
lastModifiedTime = file.lastModified();
}
}
}
return chosenFile;
}
请注意,由于 lambda 表达式,它需要或更新。Java 8
在Java 8中:
Path dir = Paths.get("./path/somewhere"); // specify your directory
Optional<Path> lastFilePath = Files.list(dir) // here we get the stream with full directory listing
.filter(f -> !Files.isDirectory(f)) // exclude subdirectories from listing
.max(Comparator.comparingLong(f -> f.toFile().lastModified())); // finally get the last file using simple comparator by lastModified field
if ( lastFilePath.isPresent() ) // your folder may be empty
{
// do your code here, lastFilePath contains all you need
}