Сначала я приведу небольшой фрагмент кода:
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
приведенный выше код работает в 90% случаев при обработке общих URL-адресов, но не работает, если в имени файла есть специальные символы. Например:
/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. Поэтому мне нужно использовать первую версию. Как я могу заставить это работать?