在java中获取AppData路径时出现URI语法错误

时间:2017-04-21 15:48:14

标签: java uri

我正在尝试使用以下代码获取AppData文件夹的路径:

URI myuri = new URI(System.getenv("AppData")+"custom file name etc...");

当我运行代码时,我收到此错误:

  

java.net.URISyntaxException:索引2处不透明部分的非法字符:
  C:\ Users \ myuser \ AppData \ Roaming \ custom file name等...

我认为问题是 C 之后的冒号,所以我认为我应该删除它并尝试这样做:

String appdata_path = System.getenv("AppData");
appdata_path.replace(":", "");
URI myuri = new URI(appdata_path+"custom file name etc...");

但结果仍然相同,我得到同样的错误 获取AppData文件夹的路径并在URI中使用它的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

您应该阅读what a URI actually is。文件名是有效的URI。

您可以使用Path.toUri方法将文件名转换为URI:

URI myuri = Paths.get(System.getenv("AppData"), "dir1", "dir2", "config.xml").toUri();