Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

ネットワーク上のファイルの存在チェック

ネットワーク上のファイルの存在チェックをしようとして

File fi = new File(url);
System.out.println(fi.exists());

のようにやってみたのですが常にfalseが返されます。Fileクラスではできないみたいです。何かいい方法はありませんか?

8

回答

8368

閲覧

8件の回答

評価

0

実際に取得してみれば良いじゃん。

評価

0

URLというクラスがあります。

評価

0

その前に、どんなパスを指定したのか知りたいです。

評価

0

public boolean urlexists (String url) {
  try {
    URL u = new URL(url);
    u.getContent();
    return true;
  }
  catch(Exception);
    return false;
  }
}

でできました。でも存在しないときの反応が遅いです。もっといい方法ないですかね?

>不良生徒
例えば↓のようなものです。
http://i.yimg.jp/images/mht/main14.gif

評価

0

動かないじゃんこのコード
それはともかく、HttpURLConnectionとってきて、レスポンスコード見てみる、とかかな。
まぁ、ネットワーク越しだからある程度の遅延は覚悟しないと。
それか、引数を今使う必要ないならスレッド起動して、あとで結果とりにくるとか。

評価

0

引数じゃない、戻り値だ。つまり、ファイルがあるかないか。

評価

0

((HttpURLConnection)url.openConnection()).getResponseMessage()

で返されるメッセージを見て解決しました。でもやはり存在しないときは反応遅いですね。ありがとうございました。

評価

0

何回も同じところを見るのなら、Mapに結果をキャッシュしておくといいよ。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。