gpt4 book ai didi

java - java中检查文件夹权限的问题

转载 作者:行者123 更新时间:2023-12-01 12:33:23 24 4
gpt4 key购买 nike

我正在创建简单的函数来检查我是否具有对文件夹的写入/删除权限

我想知道操作系统是否允许写入该文件夹?

public static String PermissionCheck(String FilePath) {
//File f = new File(FilePath);
String actions = "read,write";
try
{
AccessController.checkPermission(new FilePermission(FilePath, actions));
return ("You have read/write permition to use : " + FilePath);
}
catch (SecurityException e)
{
return ("You don't have read/write permition to use : " + FilePath);
}
}

当我使用正确的路径或不正确的路径调用该方法时,它总是从 cathc 返回消息。

我知道它是重复的问题,我已经浏览了很多链接,但没有运气!!

Similar Question

Similar Question 1

示例:

PreChecks.PermissionCheck("C:/TEST/G2");
PreChecks.PermissionCheck("C:/Program Files/SAP");

两个调用都从 catch block 返回消息,其中我对“C:/TEST/G2”拥有所有权限,但对“C:/Program Files/SAP”没有写权限。

我也尝试过 canWrite,但它说我有“C:/Program Files/SAP”的写入权限,但我知道我没有这些权限。

最佳答案

java.io.File的功能有限。例如

File f=new File("C:\\Program Files\\Java");
System.out.println(f.canWrite());

在我的机器上打印true,尽管不允许用户进程在此位置写入。

相比之下,

Path p=Paths.get("C:\\Program Files\\Java");
System.out.println(Files.isWritable(p));

正确打印false

所以解决方案是使用NIO API。

<小时/>

方法AccessController.checkPermission有一个完全不同的目的。它有助于实现安全管理器。它会抛出 SecurityException ,因为您没有明确授予访问该目录的权限,但只要您没有安装 SecurityManager ,那就无关紧要。

关于java - java中检查文件夹权限的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25765825/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com