收到用于搜索本地文件的URL (收到的URL不在我的控制范围内)。 根据RFC2396的定义有效地转义了URL。 如何将其转换为Java File对象?
有趣的是,URL getFile ()方法返回字符串而不是文件。
我们创建了一个名为“/tmp/some dir”的目录。 在" some "和" dir "之间使用空格字符。 此目录已在以下URL中正确配置: 「
file:///tmp/some dir”(为了清楚起见,添加了引号。
如何将URL转换为Java文件?
为了提供有关我的问题的更详细的信息,以下将打印为false。
URL URL=newurl (文件://tmp/somedir );
filef=newfile(URL.getfile ();
system.out.println (doesdirexist? ' f.exists ();
如果手动用空格替换“”的以下内容打印为true :
URL URL=newurl (文件://tmp/somedir );
filef=newfile(URL.getfile ) ).replaceAll (',' ' );
system.out.println (doesdirexist? ' f.exists ();
请注意,第一个示例并不是在问为什么打印为false,或者第二个示例使用hacky replaceAll
您正在询问如何将转义的URL转换为Java File对象,而不是将其打印为true。
编辑:谢谢。 这几乎是诈骗,但不完全是。
愚蠢的是,我在URL类本身中寻找辅助方法。
从Java URL检索Java文件的预期工作如下。
URL URL=newurl (' file ://home/nonet/somedir ' );
filef=new file (URL decoder.decode (URL.getfile )、' UTF-8 ' ) )