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