首页 > 解决方案 > java FilePermission 类的问题

问题描述

我必须为 java 类编写一些关于文件权限的代码,然后我找到了FilePermissionclass. 但是当我试图用它来改变我的文件权限时,什么也没发生。我知道我可以使用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,但它仍然不会改变真实文件的权限。

感谢您的所有帮助,并为我的英语感到抱歉。

标签: java

解决方案


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

您可以按照您在示例中定义的方式执行“暗示”操作。

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


推荐阅读