0

我有一个这样的路径 URI:

ftp://test:test@someftp/ready123/users/abc/#0#.

但是getPath()URI 上的方法返回:

/ready123/users/abc/. 

我需要像这样返回整个路径:

/ready123/users/abc/#0#

...这样我就可以将工作目录(CWD)更改为文件夹#0#。该代码采用通用方法,并且被许多其他应用程序使用。因此,我在进行更改时必须非常小心。我相信 # 之后的任何内容都被视为片段,但在这种情况下,它实际上是文件夹的名称。

如何/ready123/users/abc/#0#从 URI 对象中获取路径?

4

2 回答 2

1

来自 URI 类的 JavaDoc:

URI 语法和组件 在最高级别,字符串形式的 URI 引用(以下简称“URI”)具有以下语法

[scheme:]scheme-specific-part[#fragment] 

其中方括号 [...] 描述可选组件,字符 : 和 # 代表它们自己。

因此,如果您想在第一个 # 之后检索所有内容,则需要使用URI.getFragment()

于 2013-04-30T13:01:58.997 回答
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#'
于 2013-04-30T12:54:48.397 回答