最初に、ここに小さなコード スニペットを示します。
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 のみです。したがって、最初のバージョンを使用する必要があります。どうすればそれを機能させることができますか?