如何使用Scala获取文件的创建日期

Met*_*ata 6 scala

我的项目中的一个要求需要检查文件的创建日期,并确定它是否超过当天的2天.在Java中,有类似下面的代码可以让我们获取文件的创建日期和其他信息.

Path file = ...;
BasicFileAttributes attr = Files.readAttributes(file, BasicFileAttributes.class);

System.out.println("creationTime: " + attr.creationTime());
System.out.println("lastAccessTime: " + attr.lastAccessTime());
System.out.println("lastModifiedTime: " + attr.lastModifiedTime());
Run Code Online (Sandbox Code Playgroud)

但我不知道如何在Scala中编写相同的代码.任何人都可以告诉我如何在Scala中实现相同的功能.

oxb*_*kes 4

爪哇

执行此操作的首选方法是使用较新的java.nio.fileAPI:

import java.nio.file.*;
Run Code Online (Sandbox Code Playgroud)

您可以在以下位置访问修改时间(以及其他许多内容)Files

FileTime modified = Files.getLastModifiedTime(path)
Run Code Online (Sandbox Code Playgroud)

这给你一个FileTime,它可以转换为java.time.Instant

Instant modifiedInstant = modified.toInstant();
Run Code Online (Sandbox Code Playgroud)

然后您可以通过以下方式执行此操作:

import java.time.temporal.ChronoUnit.DAYS;

boolean isMoreThan2DaysOld = modifiedInstant.plus(2, DAYS).isBefore(Instant.now())
Run Code Online (Sandbox Code Playgroud)

斯卡拉

所有这些都可以从 scala 访问(除非您使用 ScalaJS):

import java.nio.file._; import java.time._; import java.time.temporal.ChronoUnit.DAYS
val isMoreThan2DaysOld 
  = Files.getLastModifiedTime(path).toInstant.plus(2, DAYS) isBefore Instant.now
Run Code Online (Sandbox Code Playgroud)