java - java FilePermission 类的问题
问题描述
我必须为 java 类编写一些关于文件权限的代码,然后我找到了FilePermission
class. 但是当我试图用它来改变我的文件权限时,什么也没发生。我知道我可以使用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
,但它仍然不会改变真实文件的权限。
感谢您的所有帮助,并为我的英语感到抱歉。
解决方案
FilePermission的Java 文档清楚地指出,这个Java 类用于表示操作(即读/写/删除/执行/读取链接)。它不会更改现有文件/文件夹的权限。
您可以按照您在示例中定义的方式执行“暗示”操作。
FilePermission 类有助于解决关键的文件访问决策(使用隐含方法),如果手动实施,可能会像任何其他权限类一样导致错误或安全漏洞。
推荐阅读
- python - 如何修复我的代码来解决这个难题?(Python)
- html - 如何在 html 画布上转换和绘制图像?
- image - 如何批量调整PNG文件的大小?
- javascript - 如何使用 jQuery 更改数据图标值?
- r - 使用 R data.table 进行子集连接替换
- r - Monte Carlo 使用 Gamma 分布估计 Theta
- amazon-web-services - 用于拉取请求的 AWS Amplify 环境变量?
- ajax - 如何使用ajax检测哪个按钮被按下
- python - Keras Sequential Model 编译成功后不拟合
- arrays - 为什么这两个数组的差的平方是3?