首先,我将在这里提供一个小代码片段:
String path = "".equals(url.getPath()) ? "/" : url.getPath();
java.io.File f = new java.io.File(path);
if (!f.exists()) {
this.code = 404; // http Not Found
return;
}
这里,URL 的类型是java.net.URL
,它的值是这样的格式:
file:///directory1/directory2.../filename
上面的代码在处理一般 URL 时 90% 的时间都有效,但是当文件名中包含特殊字符时它会失败。例如:
/tmp/Marissafolli/Receptionist/Administrative Assistant/Marissa's Resume.txt.txt
像这样的 URL 将报告“404”代码,即使它们存在。以下版本适用于这些特殊情况:
java.io.File f = new java.io.File(url.toURI());
但url.toURI()
仅在 j2SE 1.5.0 中。所以我需要使用第一个版本。我怎样才能让它工作?