【发布时间】:2014-10-24 20:15:47
【问题描述】:
从网络文件夹运行我的 java 应用程序时,我遇到了 IllegalArgumentException,它指出:URI 具有权限组件。
我调试并发现问题是我正在通过传入带有权限组件的 URI 创建一个新文件。以前从来没有遇到过这个问题,因为我一直在本地运行应用,没有权限组件。
URI uri = new URI("...network path...//myFile");
这会引发错误:
File file = new File(uri);
这行得通:
File file = new File(uri.toString());
我看到在 File(Uri) 构造函数中它不允许带有权限组件的 URI。谁能解释为什么?以及为什么允许我为字符串创建文件?
谢谢!
【问题讨论】:
-
File(URI uri)是 File 的有效构造函数... -
也来自文档,这可能会有所帮助: 参数:uri - 一个绝对的分层 URI,其方案等于“文件”,一个非空路径组件,以及未定义的权限、查询和片段组件
-
是的,我知道 File 可以获取 URI,并且我知道 URI 不能具有权限。我试图弄清楚为什么会这样。为什么使用与 URI 等效的字符串路径创建文件?
-
为什么会这样?因为这是文档指定的内容。
标签: java