Как получить метаданные файловой системы в Котлине? - PullRequest
3 голосов
/ 12 апреля 2019

Я пишу программу, которая должна выводить мета-информацию (размер, права на выполнение / чтение / запись, время последней модификации) всех файлов из указанного каталога.

Итак, я нашел класс из Java, названный BasicFileAttributes ( ссылка ). Все аргументы, необходимые для вызова метода, описаны там. Тем не менее, моя 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 Ответ

4 голосов
/ 12 апреля 2019

Files.readAttributes принимает Path в качестве первого параметра, а не String. Кроме того, вам нужно передать тип Java Class, а не тип KClass. Вы хотите что-то вроде этого:

val path = FileSystems.getDefault().getPath(readLine())
val attr = Files.readAttributes<BasicFileAttributes>(path, BasicFileAttributes::class.java)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...