如何在Kotlin中获取文件系统元数据?

时间:2019-04-11 23:22:03

标签: kotlin metadata

我正在编写一个程序,该程序应该输出指定目录中所有文件的元信息(大小,执行/读取/写入的权限,上次修改的时间)。

因此,我从Java找到了一个名为BasicFileAttributes(docs)的类。 此处描述了调用该方法所需的所有参数。但是,我的IDE给出了错误

  

以下任何一个函数都不能使用提供的参数来调用

...以红色路径突出显示。我无法确切地知道我在哪里犯了一个愚蠢的错误。我将非常感谢您的建议

val path = readLine().toString()
val attr = Files.readAttributes("img.png", BasicFileAttributes.class)

或者也不起作用

val path = readLine().toString()
val attr = Files.readAttributes(path, BasicFileAttributes.class)

1 个答案:

答案 0 :(得分:4)

Files.readAttributesPath作为其第一个参数,而不是String。另外,您需要传递Java类类型,而不是KClass类型。您想要这样的东西:

val path = FileSystems.getDefault().getPath(readLine())
val attr = Files.readAttributes<BasicFileAttributes>(path, BasicFileAttributes::class.java)