以下のURLが与えられたときにそのディレクトリ/ファイルを再帰的に列挙するJavaクライアントアプリケーションを作成する必要があります。私は、既知のタイムスタンプからの変更にのみ関心があるので、最後に変更されたタイムスタンプを取得する必要もあります。JavaクライアントアプリケーションからHTTPサーバー上のディレクトリ/ファイルを列挙する
http://www.myserver.com/testproduct/
たとえば、次のものがサーバー上に存在するとします。
http://www.myserver.com/testproduct/red/file1.txt
http://www.myserver.com/testproduct/red/file2.txt
http://www.myserver.com/testproduct/red/black/file3.txt
http://www.myserver.com/testproduct/red/black/file4.txt
http://www.myserver.com/testproduct/orange/anotherfile.html
http://www.myserver.com/testproduct/orange/mymovie.avi
http://www.myserver.com/testproduct/readme.txt
私は、指定されたURLから始まる(http://www.myserver.com/testproduct/)それぞれの最終更新タイムスタンプと一緒に再帰的にその下のディレクトリとファイルを列挙する必要があります。ディレクトリ/ファイルのリストを取得したら、タイムスタンプとその他のクライアントサイドフィルタに基づいてファイルの一部を選択的にダウンロードします。
サーバーでApacheが実行されており、ディレクトリの一覧を表示できるように構成されています。
私はApacheのHttpClient Javaクラスを使用していくつかの実験を行いましたが、http://www.myserver.com/testproduct/の内容をリクエストすると、HTMLファイルが返ってきます。フォルダの内容を示すHTMLページ。
これは唯一の方法ですか?つまり、生成されたHTMLページをスクラップしてファイルとディレクトリを解析しますか?また、返されたHTMLに基づいてディレクトリからファイルを確実に区別することができないと確信していません
結果のHTMLをスクラブしないでディレクトリやファイルを列挙する方法がありますか?
アプリケーションでクエリを実行したときに、より読みやすいディレクトリリストを返すようにApacheを設定できます。 HTTP自体にはディレクトリを読み取る手段が指定されていません。しかし、HTTPステータスコード304 "Not modified"と共に、選択的にダウンロードするのに適した、要求されたオブジェクトの最終更新時刻を返すことができる "Last-Modified"ヘッダーフィールドがあります。 – JimmyB
ありがとう!現在設定されているので、最後に変更されたフィールドが表示されます。私はちょうどそのページを掻くことが一般的には適用できないかもしれないと心配していました。 – Nerdtron