1

Unix サーバーに存在するファイル属性を取得しようとしています。この URL を IE に入力すると、ファイル - フォルダー - ディレクトリ アーキテクチャでファイルが表示されます。

ファイルの変更日、ファイルのサイズなどのファイル属性を取得するプロセスを自動化できるツールのコードを作成する予定です。

これを行う方法/方法はありますか?このコードは機能しますか:

File file = New File("http://<someserver.com>:<portnumber>/logs/log.txt");
Date date = file.LastModifiedDate();
System.out.println("modifed date is"+date);
4

2 に答える 2

1

サーバーがサポートするプロトコルがHTTPのみの場合、これを行う簡単な方法はありません。あなたはしなければならない:

  • <a href=返されたHTMLを解析し、おそらくタグを探します( htmlパーサーを使用しますが、正規表現は使用しません)
  • でこれらのリンクを開きnew URL(url).openConnection()、ストリームを読み取り、実際のファイル(ディレクトリではない)が見つかるまで同じことを再帰的に実行します。

ただし、これではファイル属性は提供されません。名前とファイルの内容のみが提供されます。

閲覧したい場合は、FTPSCPなどの別のプロトコルが必要です。

于 2010-11-11T06:06:22.227 に答える
0

ここでは、HTTP プロトコルは役に立ちません。HTTP は、実際のファイル変更日を必ずしも反映していないContent-length(ファイル サイズ) とヘッダー値を除いて、ファイル属性を発行しません。Last-Modifiedまた、HTTP サーバーによってまったく送信されない場合もあります。

あなたの最善の策は、たとえばApache Commons Netの FTP ライブラリを使用することです。

このライブラリを使用する場合は、FTPFileクラスのプロパティ (ファイル サイズ、ファイルの日付、アクセス許可など) を使用できます。

于 2010-11-11T11:08:45.503 に答える