まず、私はここに小さなコードスニペットを提供します:Javaでは、HTTP 404が特殊文字を含むfile:// URLを取得するのを避けるにはどうすればよいですか?
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でのみです。だから私は最初のバージョンを使用する必要があります。どうすればそれを動作させることができますか?
元のURLはどこから届いていますか? – objects