如何在Java中获得Unix文件权限

时间:2011-06-22 20:12:34

标签: java unix


有没有办法读取/设置文件的Unix权限,并检查进程是否具有Java中的用户/组/其他权限?我知道这不是JNI的问题,但我需要没有JNI的跨平台解决方案。

3 个答案:

答案 0 :(得分:5)

这将在今年夏天发布的Java 7中使用包java.nio.file.attribute中的类来实现。请参阅JDK 7 API documentation

Java 6及更早版本的标准库中没有任何内容可以使用Unix文件系统权限。

因此,通过使用Java 7 API,您不需要JNI,但Voo表示它不是跨平台的,因为Windows和其他非Unix系统不支持Unix文件权限。

答案 1 :(得分:4)

Set<PosixFilePermission> filePerm = null;
try {
    filePerm = Files.getPosixFilePermissions(Paths.get("/app/data/abc.txt"));
} catch (IOException e) {
    e.printStackTrace();
}
String permission = PosixFilePermissions.toString(filePerm);

受Java 1.7支持,不支持跨平台。

答案 2 :(得分:1)

目前java中没有通用文件访问权限管理API。它针对未来的Java版本。至于现在我们没有更多的File.canRead()/ canWrite()/ canExecute()和File.setExecutable ......