« 高槻ジャズストリート2007 | Main | JavaでFTP(2) »

2007.05.06

JavaでFTP

 Javaでftp通信を行う場合のライブラリとして、Enterprise Distributed Technologiesから提供されているedtFTPjってのを発見。無償版と有償版とがあり、無償版はLGPLにて提供。有償版は、SecureFTPやFTPInputStream等をサポートしているなどいろいろと追加機能があるようですが、簡単なFTPクライアントを作成する場合なら無償版でも充分でしょう。

 ちなみに、無償版を改変して使用する場合でソースコードを公開したくない場合は、おそらくedtFTPj Source License($99)を購入すればいいのではないかと。商用版の場合は個人用・チーム用・会社用があり、配布に関しては制限はなさそうな感じ?

 無償版をダウンロードして、試しに簡単なプログラムを書いてみました。

//  インスタンス作成
FTPClient client = new FTPClient();

//  リモートホストを設定
client.setRemoteHost("ftp-server-hostname");

//  リモートホストに接続する
client.connect();

//  ログインする
client.login("anonymous", "");

//  ディレクトリを変更してみる
client.chdir("hoge");

//  FTPサーバの情報を取得してみる。
System.out.println("System:" + client.system());
System.out.println("Stat :" + client.stat());

//  ファイルの一覧を取得する
//  第2引数にtrueをセットするとファイル名以外の情報も含めて取得可能
//  ただし、テキストのレイアウトはftpサーバによって異なる可能性あり?
String[] files = client.dir(".", true);
for (int i=0; i<files.length; i++) {
  System.out.println(files[i]);
}
//  バイナリモードでファイルをダウンロードする
//  ちなみに、直接OutputStreamに出力することで、ZipOutputStream等に渡すことも可能
//  (複数のファイルをまとめて取得しアーカイブを作成する場合などに使用?)
client.setType(FTPTransferType.BINARY);
client.get("savefilename.zip", "remote-filename.zip");

//  ファイルの最終更新日の情報を取得します。
Date modify = client.modtime("remote-filename.zip");
System.out.println(modify);

//  切断
client.quit();


|

« 高槻ジャズストリート2007 | Main | JavaでFTP(2) »

Java」カテゴリの記事

Comments

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/3959/14971144

Listed below are links to weblogs that reference JavaでFTP:

» JavaでFTP(2) [気の向くままに・・・]
 JavaでFTP通信を行う場合のライブラリとしては、他にJakarta Com [Read More]

Tracked on 2007.05.06 at 12:42

« 高槻ジャズストリート2007 | Main | JavaでFTP(2) »