Java FilePermission类的问题

时间:2019-04-15 14:56:04

标签: java

我必须为Java类编写一些有关文件权限的代码,然后找到FilePermission类。但是,当我尝试使用它来更改我的文件权限时,什么也没发生。我知道我可以使用file.setReadable之类的东西。但是我的问题是我是否可以使用FilePermission类来更改权限,如果不是,则该类是什么意思

String pathToFolder="C:\\tmp\\file.txt";

FilePermission folderPermission = new FilePermission("C:\\tmp\\*", "read");

PermissionCollection permission = folderPermission.newPermissionCollection();

permission.add(folderPermission);

FilePermission dataPermission = new FilePermission(pathToFolder, "write");

permission.add(dataPermission);

if(permission.implies(new FilePermission(pathToFolder, "read, write"))) {
    System.out.println("Read, Write permission is granted for the path "+pathToFolder);
}
else {
    System.out.println("No Read, Write permission is granted for the path " + pathToFolder);
}

现在,我可以使用它来比较PermissioCollection上的两个权限,但是它仍然不会更改对实际文件的权限。

感谢您的帮助,对不起我的英语。

1 个答案:

答案 0 :(得分:0)

FilePermission的Java文档明确指出,该Java类用于表示操作(即读/写/删除/执行/读取链接)。它不会更改现有文件/文件夹的权限。

您可以严格按照示例中的定义执行“隐式”操作。

FilePermission类有助于解决关键的文件访问决策(使用隐含方法),如果手动实施该决策,则可能导致错误或违反其他权限​​类的安全漏洞。