Проблема с получением прав данных файла [для исполнения / чтения / записи] - PullRequest
1 голос
/ 14 апреля 2019

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

Я пытался получить эту информацию с помощью PosixFilePermissions, но при добавлении в список я получаю исключение в потоке "main" java.lang.UnsupportedOperationException. Может быть, вам стоит использовать какую-нибудь другую библиотеку? Или я где-то ошибся? Буду благодарен за любой совет!

fun long(path:Path) : MutableList<String> {
        var listOfFiles = mutableListOf<String>()
        val files = File("$path").listFiles()
        var attr: BasicFileAttributes 
        Arrays.sort(files, NameFileComparator.NAME_COMPARATOR)
        files.forEach {
            if (it.isFile) {
                attr = Files.readAttributes<BasicFileAttributes>(it.toPath(), BasicFileAttributes::class.java)
                listOfFiles.add("${it.name} ${attr.size()} ${attr.lastModifiedTime()}" +
                        " ${PosixFilePermissions.toString(Files.getPosixFilePermissions(it.toPath()))}")
            }
            else listOfFiles.add("dir ${it.name}")
        }
        return listOfFiles
    }

1 Ответ

1 голос
/ 14 апреля 2019

PosixFilePermissions можно использовать только для POSIX-совместимых файловых систем (Linux и т. Д.).

Для системы Windows, разрешения должны быть доступны напрямую:

file.canRead()
file.canWrite()
file.canExecute()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...