- PR -

http経由でパス配下のファイルを全て取得する方法を探しています。

1
投稿者投稿内容
下っ端プログラマー
会議室デビュー日: 2005/07/13
投稿数: 7
投稿日時: 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/05/27
投稿数: 281
お住まい・勤務地: 東京
投稿日時: 2005-07-13 12:22
取得したいモノのURLがすべてわかっているなら、単純に繰り返すだけです。

HTTPには「あるディレクトリの全ファイルをリストする」という機能はないので、取得するURLが未知の場合は簡単な手段は存在しません。既知のページを取得して、HTMLから <a href="..."> を解析して、次に調べるURLを作って……ということをやる必要があります。
atlan
ベテラン
会議室デビュー日: 2001/08/15
投稿数: 66
お住まい・勤務地: 東京
投稿日時: 2005-07-13 13:27
引用:

スフレさんの書き込み (2005-07-13 12:22) より:
HTTPには「あるディレクトリの全ファイルをリストする」という機能はないので、取得するURLが未知の場合は簡単な手段は存在しません。既知のページを取得して、HTMLから <a href="..."> を解析して、次に調べるURLを作って……ということをやる必要があります。




何もしないでファイルリストが作れるんだったらアクセス制限かけていないよく有る「隠しページ」なんて意味無くなりますよね。
下っ端プログラマー
会議室デビュー日: 2005/07/13
投稿数: 7
投稿日時: 2005-07-13 15:21
スフレさん、atlanさんありがとうございました。

HTMLから解析しようと思います。

回答ありがとうございました。
がるがる
ぬし
会議室デビュー日: 2002/04/12
投稿数: 873
投稿日時: 2005-07-13 15:31
どもです。がるです。
ちょいと余談ではあるのですが。
引用:

パス配下全てのファイルを取得したいのですが、どのように取得すればいいのでしょうか?


引用:

HTMLから解析しようと思います。


んむぅ…ちょっとこの二つをあわせると「怖い」予想をしてしまう
のですが(苦笑

んっと。下っ端プログラマーさん。基本的には、あなたの要求は
わりと「セキュリティ的に怖い」部類の質問になるです。
ので、もし「正当な」仕様に基づくものであれば、ある程度そのあたり
の正当性を差しさわりのない程度に書いておくとよいと思うです。

そうでないと、場合によっては
・特定のサイトをクラックするための下準備
・メールアドレス等の収集のための下準備
といったいらん邪推を生みそうに思うので。

以上、蛇足的余談でした。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2005-07-13 21:21
今回の質問もそうですが、
クライアントのファイルを抜きたいとか、
クライアントの実行ファイルを警告無しに実行したいとか、
結構怖い質問が多いですね。

多分、顧客の要求に対して適切な対象方法があるのにもかかわらず、
それがわからない為に無理やりって感じの実装で逃げようって
パターンが多いような気がします。

例えば、HTTPサーバ上の特定の場所に存在するファイルを全て取得したい場合、
HTTPサーバでファイルシステムに近い実装のサービスを立ち上げるとか、
無理やり実装を考える前に楽する方法が少なからず存在します。
(制限によってできないなどの前提もあるとは思いますが。)
WEBアプリ系が動く環境なら、そのサーバのローカルのファイル情報を返してもいいと思います。

私も余談になってしまいました。
下っ端プログラマー
会議室デビュー日: 2005/07/13
投稿数: 7
投稿日時: 2005-07-14 13:27
こんにちは。

どうも要件を聞き間違えてたようです。

要件
HTTP経由での複数ファイルの取得→HTTP経由での圧縮ファイルの取得

調査依頼を口頭で受けたのでかなりの難聴ぶりを発揮してました。
お騒がせしてすみません。
1

スキルアップ/キャリアアップ(JOB@IT)