java.net.URL 引用父指令中的文件



我有一个非常基本的问题。我需要一个 URL 对象,但该文件位于相对于项目的上一个目录中。

例如,如果我这样做

File testFile = new File("../../data/myData.xml");

工作正常,它找到文件

然而

URL testURL = new URL("file:///../../data/myData.xml")

给出一个

线程"main"中的异常 java.io.FileNotFoundException:/../../data/myData.xml

任何想法,如何解决,解决这个问题? 在不改变数据位置的情况下

提前非常感谢Altober

你可以使用它

URL testURL = new File("../../data/myData.xml").toURI().toURL();

/**
 * @param args
 */
public static void main(String[] args) {
try {
    URL testUrl = new URL("file://C:/Users/myName/Desktop/abc.txt");
    System.out.println(testUrl.toString());
} catch (MalformedURLException e) {
    e.printStackTrace();
}
    }
}

上面的代码是工作文件,刚刚测试过它,所以你需要使用 file://,如果可能的话,尝试完整路径

线程"main"中的异常 java.io.FileNotFoundException:/../../data/myData.xml

请注意,它正在查找根目录的父目录,而不是当前目录的父目录。

我不知道文件URL是否可以引用相对路径,请尝试

'new URL("file://../../data/myData.xml")''

最新更新