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

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


当我运行代码时,出现以下错误:


  java.net.URISyntaxException:索引2上不透明部分中的非法字符:
  C:\ Users \ myuser \ AppData \ Roaming \ custom文件名等...


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

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


但是结果仍然相同,并且我得到了相同的错误。
获取AppData文件夹的路径并将其用于URI的正确方法是什么?

最佳答案

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

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

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

关于java - 在Java中获取AppData路径时出现URI语法错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43546972/

10-12 03:59