java 遍历文件夹并取出后缀为-1.jpeg的最新日期的文件
时间: 2024-10-01 09:06:38 浏览: 37
在Java中,遍历文件夹并找出特定后缀(如".jpeg-1")的最新日期文件,可以使用`File`和`SortedMap`结合。这里假设我们只关心`.jpeg-1`文件,并且忽略大小写的文件名。以下是步骤和示例代码:
1. 创建一个`Comparator`,比较文件最后修改的时间戳:
```java
Comparator<File> comparator = Comparator.comparingLong(File::lastModified).reversed();
```
2. 使用`Files.walk`函数从根目录开始递归遍历文件夹,并找到所有匹配后缀的文件:
```java
Path path = Paths.get("your_directory_path");
Map<String, File> matchingFiles = Files.walk(path)
.filter(Files::isRegularFile)
.map(f -> f.toFile())
.filter(file -> file.getName().toLowerCase().endsWith(".jpeg-1"))
.collect(Collectors.toMap(File::getNameWithoutExtension, Function.identity(), (f1, f2) -> f1, comparator));
```
3. 由于`SortedMap`保证了键值对的自然排序,我们可以直接获取到最新的文件:
```java
if (!matchingFiles.isEmpty()) {
File latestFile = matchingFiles.values().stream().findFirst().orElse(null);
if (latestFile != null) {
long modificationDate = latestFile.lastModified();
System.out.println("最新文件: " + latestFile.getAbsolutePath() + ", 修改日期:" + modificationDate);
} else {
System.out.println("未找到匹配的文件.");
}
} else {
System.out.println("文件夹中没有'.jpeg-1'文件.");
}
```
阅读全文