2011-10-08 13 views
7

最近getPath()に問題が発生しました。メインクラスへのパスにどこかにスペースがある場合getPath()とJavaのスペース

File path = new File(Main.class.getResource("/worlds/").getPath()); 
File[] files = path.listFiles(); 

問題であり、path.listFiles()nullを返すこと:

私のコードは次のようになります。スペースがない場合、すべて正常に動作します。私はCMDへのパスを印刷する場合

は、私はすべてのスペースがファイルへのURLを変換するための正しい方法ではありません%20

答えて

3

これをしないでください。 getResource()によって返されたresource URLは、ファイルシステム上のファイルである必要はなく、Fileが表すものです。

+0

へのパスパスが必要ですが、プログラムが実行されたパスに対するディレクトリの内容をより良い方法で読み取ることができません。 – Simiil

+0

'new file(" ./ worlds ")listFiles()' –

+0

これは、クエストオンに記載されているのと同じエラーが発生します。 – MasterCassim

13

によって置き換えられていることがわかります。代わりにこれを試してください:

new File(Main.class.getResource("/worlds/").toURI()); 
+0

私は同じ問題がありますが、Velocity.getTemplate(.... – gstackoverflow