我正在使用
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上运行它,因为那里的地址不同,所以它不起作用......
这个问题该怎么办?
答案 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:];