- - PR -
http経由でパス配下のファイルを全て取得する方法を探しています。
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-07-13 11:57
こんにちは。
URLクラスを使用してファイル名を指定すればhttp経由でファイルが取得できます。 パス配下全てのファイルを取得したいのですが、どのように取得すればいいのでしょうか? http://○○○/***/△△.txt 現在は△△.txtだけ取得できます。 予定では***配下のファイルを全て取得したい。 現在のソース URL url = new URL( http://○○○/***/△△.txt ); URLConnection uc = url.openConnection(); BufferedInputStream inStream=new BufferedInputStream(uc.getInputStream()); BufferedOutputStream outStream=new BufferedOutputStream(new FileOutputStream( △△.txt )); 以下のように指定するとhtmlが取得されるのでうまくいきません。 URL url = new URL( http://○○○/***/ ); よろしくお願い致します。 | ||||||||
|
投稿日時: 2005-07-13 12:22
取得したいモノのURLがすべてわかっているなら、単純に繰り返すだけです。
HTTPには「あるディレクトリの全ファイルをリストする」という機能はないので、取得するURLが未知の場合は簡単な手段は存在しません。既知のページを取得して、HTMLから <a href="..."> を解析して、次に調べるURLを作って……ということをやる必要があります。 | ||||||||
|
投稿日時: 2005-07-13 13:27
何もしないでファイルリストが作れるんだったらアクセス制限かけていないよく有る「隠しページ」なんて意味無くなりますよね。 | ||||||||
|
投稿日時: 2005-07-13 15:21
スフレさん、atlanさんありがとうございました。
HTMLから解析しようと思います。 回答ありがとうございました。 | ||||||||
|
投稿日時: 2005-07-13 15:31
どもです。がるです。
ちょいと余談ではあるのですが。
んむぅ…ちょっとこの二つをあわせると「怖い」予想をしてしまう のですが(苦笑 んっと。下っ端プログラマーさん。基本的には、あなたの要求は わりと「セキュリティ的に怖い」部類の質問になるです。 ので、もし「正当な」仕様に基づくものであれば、ある程度そのあたり の正当性を差しさわりのない程度に書いておくとよいと思うです。 そうでないと、場合によっては ・特定のサイトをクラックするための下準備 ・メールアドレス等の収集のための下準備 といったいらん邪推を生みそうに思うので。 以上、蛇足的余談でした。 | ||||||||
|
投稿日時: 2005-07-13 21:21
今回の質問もそうですが、
クライアントのファイルを抜きたいとか、 クライアントの実行ファイルを警告無しに実行したいとか、 結構怖い質問が多いですね。 多分、顧客の要求に対して適切な対象方法があるのにもかかわらず、 それがわからない為に無理やりって感じの実装で逃げようって パターンが多いような気がします。 例えば、HTTPサーバ上の特定の場所に存在するファイルを全て取得したい場合、 HTTPサーバでファイルシステムに近い実装のサービスを立ち上げるとか、 無理やり実装を考える前に楽する方法が少なからず存在します。 (制限によってできないなどの前提もあるとは思いますが。) WEBアプリ系が動く環境なら、そのサーバのローカルのファイル情報を返してもいいと思います。 私も余談になってしまいました。 | ||||||||
|
投稿日時: 2005-07-14 13:27
こんにちは。
どうも要件を聞き間違えてたようです。 要件 HTTP経由での複数ファイルの取得→HTTP経由での圧縮ファイルの取得 調査依頼を口頭で受けたのでかなりの難聴ぶりを発揮してました。 お騒がせしてすみません。 |
1