JAVA -如何在目录中获得最后/最近创建的文件夹名称?



如何在使用JAVA的目录中获得最后创建(不是最后修改)的文件夹名称/路径?我找不到与JAVA相关的答案,因此在这里发帖。

它需要几个步骤,例如:

  1. 列出目录的所有元素
  2. 目录过滤器
  3. 获取文件创建时间
  4. 在列表中保存路径+时间组合
  5. 查找列表中关于时间的最小值
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.attribute.BasicFileAttributes;
import java.nio.file.attribute.FileTime;
import java.util.ArrayList;
import java.util.List;
public class LastCreatedDir {
record PathAndTime(Path path, FileTime time) { }

public static void main(String[] args) throws Exception {

Path path = Paths.get("..\");
List<PathAndTime> list = new ArrayList<>();

// 1. -------------------------------------
try (var files = Files.list(path)) {
files.forEach(p -> {
// 2. -----------------------------
if (Files.isDirectory(p)) {
try {
// 3. -----------------------
BasicFileAttributes attr = Files.readAttributes(p,
BasicFileAttributes.class);
FileTime fileTime = attr.creationTime();
// 4. -----------------------
list.add(new PathAndTime(p, fileTime));
} catch (IOException ex) {
ex.printStackTrace();
}
}
});
}
// 5. -------------------------------------        
var result = list.stream().min((a, b) -> {
return b.time.compareTo(a.time);
});

result.ifPresentOrElse(entry -> {
System.out.println(entry.path + " @ " + entry.time);
}, () -> {
System.out.println("No directories found");
});
}
}

相关内容

  • 没有找到相关文章

最新更新