如何检查应用程序是否有权读取或写入文件系统上的特定目录。我正在尝试这个:
try {
AccessController.checkPermission(new FilePermission(files[i]
.getAbsolutePath(), "read,write"));
}
catch (Exception e) {
System.out.println(e.toString());
}
但它总是抛出异常并输出:
java.security.AccessControlException: access denied ("java.io.FilePermission" "C:\Dell" "read")
java.security.AccessControlException: access denied ("java.io.FilePermission" "C:\Documents and Settings" "read")
java.security.AccessControlException: access denied ("java.io.FilePermission" "C:\glut-3.7.6" "read")
我在这里缺少什么吗?
看来AccessController
当您没有权限时总是抛出异常。你可以通过捕捉来处理这个问题SecurityException
.
检查读/写权限的更好解决方案java.io.File.canRead()
, java.io.File.canWrite()
方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)