获取权限数据[用于执行/读取/写入]文件时出现问题

时间:2019-04-13 22:04:31

标签: kotlin metadata

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

我试图使用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 个答案:

答案 0 :(得分:1)

PosixFilePermissions仅可用于POSIX兼容的文件系统(Linux等)。

对于Windows系统,必须直接访问权限:

file.canRead()
file.canWrite()
file.canExecute()