Java中的getPath()和Spaces

Sim*_*iil 9 java file

我最近遇到了getPath()的问题.

我的代码看起来像这样:

File path = new File(Main.class.getResource("/worlds/").getPath());
File[] files = path.listFiles();
Run Code Online (Sandbox Code Playgroud)

问题现在是,如果在Main类的Path中某处有空格,path.listFiles()则会返回null.如果没有空间,一切正常.

如果我打印到cmd的路径,我看到每个空格都被一个替换 %20

jta*_*orn 14

这不是将URL转换为文件的正确方法.试试这个:

new File(Main.class.getResource("/worlds/").toURI());
Run Code Online (Sandbox Code Playgroud)


Rya*_*art 4

不要那样做。getResource()返回的资源URL不一定是文件系统上的文件,这正是File所代表的。