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 に答える