如何摆脱URI或URL中的起始斜杠?

时间:2013-07-05 13:18:31

标签: url path uri absolute-path

我正在使用

URL res = this.getClass().getClassLoader().getResource(dictionaryPath);
String path = res.getPath();
String path2 = path.substring(1);

因为方法getPath()的输出返回如下:

 /C:/Users/......

我需要这个

 C:/Users....

我真的需要以下地址,因为一些外部库拒绝在开头使用斜杠或使用file:/开头或其他任何东西。

我在URL中尝试了几乎所有方法,比如toString()toExternalPath()等,并且使用URI完成相同的操作,并且没有一个像我需要的那样返回它。 (我完全不明白,为什么它在开头保留斜线)。

只需擦除第一个字符就可以在我的机器上完成。但是一位朋友试图在linux上运行它,因为那里的地址不同,所以它不起作用......

这个问题该怎么办?

4 个答案:

答案 0 :(得分:6)

将URL转换为URI并在File构造函数中使用它:

URL res = this.getClass().getClassLoader().getResource(dictionaryPath);
File file = new File(res.toURI());
String fileName = file.getPath();

答案 1 :(得分:3)

只要UNIX路径不包含驱动器号,您可以尝试:

URL res = this.getClass().getClassLoader().getResource(dictionaryPath);
String path = res.getPath();
char a_char = text.charAt(2);
if (a_char==':') path = path.substring(1);

答案 2 :(得分:1)

转换为URI,然后使用Paths.get()

URL res = this.getClass().getClassLoader().getResource(dictionaryPath);
String path = Paths.get(res.toURI()).toString();

答案 3 :(得分:0)

一旦你得到它就可以格式化。

类似的东西:

path2 = path2 [1:];