获取权限数据[执行/读/写]文件的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了获取权限数据[执行/读/写]文件的问题相关的知识,希望对你有一定的参考价值。

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

我试图使用PosixFilePermissions获取此信息,但是当添加到List时,我在线程“main”java.lang.UnsupportedOperationException中得到Exception。也许你应该使用其他一些图书馆?或者我在某个地方犯了错误?我会很感激任何建议!

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
    }
答案

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

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

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

以上是关于获取权限数据[执行/读/写]文件的问题的主要内容,如果未能解决你的问题,请参考以下文章

linux文件只有读、写,没有执行权限 怎么加

linux权限位说明

Android 逆向Linux 文件权限 ( Linux 权限简介 | 系统权限 | 用户权限 | 匿名用户权限 | 读 | 写 | 执行 | 更改组 | 更改用户 | 粘滞 )

学习记录

Linux基本权限和特殊权限管理

配置权限,LDAP