gpt4 book ai didi

java - 尽管我有权访问该文件,但 Files.isExecutable(...) 给出 false

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

我正在使用 java.nio.file.Files 类来检查登录用户是否有权执行文件。虽然我有权执行文件(即我可以手动运行该文件),但 isExecutable(pathToFile) 返回 false。 JVM没有执行该文件的权限吗?

最佳答案

Files.is…方便的方法,如 Files.isExecutable(path)都很好,如果简单的话true/false答案就足够了,在这种情况下,它们可以让您免于处理异常处理,但当您想了解详细信息时却没有多大帮助。如果你回溯后台会发生什么,你可以catch自己查看异常,找出 JVM 认为执行该文件不起作用的原因:

try {
path.getFileSystem().provider().checkAccess(path, AccessMode.EXECUTE);
System.out.println("can execute "+path);
} catch(IOException ex) {
System.out.println("can not execute: "+ex);
}

异常(或其实际类型)可能会告诉您原因。

请注意,这是 IOException 。与您的问题的评论相反,您可以排除安全策略问题。如果 JVM 安全策略禁止访问, SecurityException调用Files.isExecutable(path)时也被抛出,您已经注意到了。

如果Files.isExecutable(path)返回false ,您可以放心地假设 IOException已被 checkAccess 抛出,要么是因为假设当前用户确实没有足够的访问权限,要么是因为在考虑访问权限之前存在 I/O 问题。

关于java - 尽管我有权访问该文件,但 Files.isExecutable(...) 给出 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42443770/

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