我试图使用Scala获取基本文件属性,我的参考是这个Java问题:
Determine file creation date in Java
这段代码我试图在Scala中重写:
static void getAttributes(String pathStr) throws IOException {
Path p = Paths.get(pathStr);
BasicFileAttributes view
= Files.getFileAttributeView(p, BasicFileAttributeView.class)
.readAttributes();
System.out.println(view.creationTime()+" is the same as "+view.lastModifiedTime());
}
我无法弄清楚的是这行代码..我不明白如何使用scala以这种方式传递一个类...或者为什么Java坚持这样做第一个地方而不是使用实际构造的对象作为参数。有人可以帮我写这行代码以正常运行吗?我必须使用错误的语法
val attr = Files.readAttributes(f,Class[BasicFileAttributeView])
答案 0 :(得分:5)
试试这个:
def attrs(pathStr:String) =
Files.getFileAttributeView(
Paths.get(pathStr),
classOf[BasicFileAttributes] //corrected
).readAttributes
答案 1 :(得分:0)
从Scala中获取文件创建日期,来自基本文件属性:
//选项1,
import java.nio.file.{Files, Paths}
import java.nio.file.attribute.BasicFileAttributes
val pathStr = "/tmp/test.sql"
Files.readAttributes(Paths.get(pathStr), classOf[BasicFileAttributes]).creationTime
res3:java.nio.file.attribute.FileTime = 2018-03-06T00:25:52Z
//选项2,
import java.nio.file.{Files, Paths}
import java.nio.file.attribute.BasicFileAttributeView
val pathStr = "/tmp/test.sql"
{
Files
.getFileAttributeView(Paths.get(pathStr), classOf[BasicFileAttributeView])
.readAttributes.creationTime
}
res20:java.nio.file.attribute.FileTime = 2018-03-07T19:00:19Z