私はjavaにいくつかのコードを書いて、与えられたurlがファイルかディレクトリかどうか調べたいと思っています。これどうやってするの??URL http://www.test.com/abc.pdfがファイルかディレクトリかどうか調べる方法は?
答えて
URL自体に「ファイル」または「ディレクトリ」という概念はありません。 URLの内容は、要求されたときにサーバーが応答するものによって定義されます。 MIMEタイプがapplication/pdf
のものを取得した場合、URLはPDFファイルを表します。あなたが他のものを手に入れたら、それはPDFファイルではありません。
URL/URI仕様、HTTP仕様、MIMEタイプレジストリのいずれにも「ディレクトリ」の概念はありません。
ウェブサーバーにはというメッセージがあります。は、その意味を知っていてもURLがディレクトリに解決されるとは限りません。 (そして多くの場合、ウェブサーバは、ディレクトリ自体について/ケアを知っていません。例えば、典型的なRESTfulなWeb APIは、概念を認識しません。)
あなたのオプションは次のとおりです。
フェッチするようにしてください物事をどのようなコンテンツの種類を参照してください。しかし、 "ディレクトリ"はWebサーバによって何かのようにレンダリングされるかもしれないことに留意してください。そうすれば、ディレクトリをこのように非ディレクトリと確実に区別することは(一般的に)不可能です。
ファイルのダウンロードを避けたい場合は、GET要求ではなくHEAD要求を送信できます。これには、
URLConnection
ではなく完全なHTTPクライアントライブラリが必要です。"ディレクトリ"の概念が不要なようにアプリケーションの設計と実装を変更してください。
アプリケーションを変更して、は、「ディレクトリ」と「純粋にURLに基づいたファイル」を決定します。 (一般的なケースでは、これは動作しません...あなたが区別できるようにURL名の部分に普遍的に観察される規則がないためです)。
URLスキーム/プロトコルを使用して「ディレクトリ」は明確に定義された概念です。たとえば、 "file:"または "ftp:"などです。
URLから戻ってくるものは、基本的に「ファイル」または「ディレクトリ」ではありません。最高でも、コンテンツタイプのデータストリームです。一般に、ファイルシステムに保存するか、または表示専用に一時ストアに保存するかのいずれかによって、クライアント側の「ファイル」になります。基本的には、Webサーバーが何かがHTTPを使用するディレクトリであることをクライアントに伝える方法はありません。
"ディレクトリ"(おそらくURLに基づいて、恐らくファイル拡張子がない)を推測するためにクライアント側のビジネスロジックを作成するか、またはこれに対して別のプロトコルを使用する必要があります。
- 1. JavaScriptを使用してディレクトリにファイルが存在するかどうかを調べる方法は?
- 2. 値がゼロかどうかを調べる方法は?
- 3. 言語がLL(1)かどうかを調べる方法は?
- 4. 言語がLL(1)かどうかを調べる方法は?
- 5. レスポンスでURLが有効かどうかを調べる
- 6. stdinが空であるかどうかを調べる方法
- 7. androidでスピーカーフォンがオンかどうかを調べる方法
- 8. wxコントロールが無効かどうかを調べる方法
- 9. ファイルが存在するかどうかを調べるJava
- 10. Djangoでは、リクエストがキャンセルされたかどうかを調べる方法は?
- 11. ディレクトリがPERFORCEで最新であるかどうかを調べる
- 12. ディレクトリがUNIXに存在するかどうかを調べるループ
- 13. オブジェクトが静止しているかどうかを調べる方法は?
- 14. 型パラメーターが型のサブタイプであるかどうかを調べる方法は?
- 15. 配列要素が空であるかどうかを調べる方法は?
- 16. TrueTypeフォントがイタリック体であるかどうかを調べる方法は?
- 17. matlabで行列が空であるかどうかを調べる方法は?
- 18. 配列がスタックにあるかどうかを調べる方法は?
- 19. ブーストグラフに頂点が存在するかどうかを調べる方法は?
- 20. チキンスキームに変数が存在するかどうかを調べる方法は?
- 21. UITableViewCellがドラッグされているかどうかを調べる方法は?
- 22. JCRプロパティが複数値であるかどうかを調べる方法は?
- 23. ファイルが存在するかどうかを調べる簡単な方法はありますか?
- 24. URLがファイル名またはディレクトリを表しているかどうかをブラウザが知る方法
- 25. クラスが他のクラスのサブクラスかどうかを調べる方法は?
- 26. 文字列が数字かどうかを調べる方法は?
- 27. ファイルがシンボリックリンクかどうかを調べるためのfstat()のPOSIXの方法はありますか?
- 28. gitを使わずにディレクトリが有効なgitディレクトリであるかどうかを調べるには?
- 29. レコードが見つかったかどうかを調べる方法:class :: dbi find_or_create
- 30. subversion URLがファイルかsharpsvnを使用しているディレクトリであるかどうかをチェックする方法
Apacheは静的ディレクトリをtext/htmlとして提供しているため、どちらも役に立ちません。 –
私はhttprequestを作成し、応答を取得し、応答のヘッダーにMIMEタイプを探していますか?もしpdfへのhttprequestをやっているのであれば、ファイルをダウンロードするのと同じですか? –
@ Yannick Wald:はい、サーバーに尋ねる必要があります。ただし、ファイル全体をダウンロードすることなく、HTTPヘッダーを取得するHEAD要求を行うことができます(ファイルのダウンロードはGET要求になります)。 –