我有一个像这样的路径的URI:
ftp://test:test@someftp/ready123/users/abc/#0#.
但是URI上的方法getPath()
会返回:
/ready123/users/abc/.
我需要像这样返回整个路径:
/ready123/users/abc/#0#
...这样我就可以将工作目录(CWD)更改为#0#文件夹。代码是一个通用的方法,并且被许多其他应用程序使用。因此,当我做出改变时,我必须非常小心。我相信#之后的所有内容都被视为片段,但在这种情况下,它实际上是文件夹的名称。
如何从URI对象获取路径/ready123/users/abc/#0#
?
答案 0 :(得分:1)
来自URI类的JavaDoc:
URI语法和组件最高级别的URI引用 字符串形式的(以下简称“URI”)具有语法
[scheme:]scheme-specific-part[#fragment]
其中方括号[...]描绘了可选组件和 人物:和#代表自己。
因此,如果您想在第一个#之后检索所有内容,则需要使用URI.getFragment()
答案 1 :(得分:0)
您需要使用%23
替换哈希字符 URI uir = new URI("ftp://test:test@someftp/ready123/users/abc/%230%23");
System.out.println(uir.getPath()); // returns '/ready123/users/abc/#0#'