[INDEX]
2001-07-17

JavaによるFtpConnectionクラスの実装

概要

システム設計をしていると、バッチ的にFTPを実行できると便利な場面がよくある。そのようなときにはExpectを使ってftpコマンドを制御するか、スクリプト対応のftpコマンドを使用することになる。しかし、その方法は移植性が悪くなる。そこで、Java言語でプログラミングするときのユーティリティとしてのFTPクライアントクラスがあれば、多くの用途に対応できると考え、実装してみた。

FtpConnection.zip

com.shorindo
Class FtpConnection

java.lang.Object
  |
  +--com.shorindo.FtpConnection

public class FtpConnection
extends java.lang.Object

簡単なFTPクライアントの実装。典型的には以下のように使用します。

	FtpConnection ftp = new FtpConnection();

	ftp.login("user", "pass");
	ftp.cd("/tmp");
	ftp.put("a.txt", "b.txt");
	ftp.get("b.txt", "c.txt");
	ftp.quit();
 

Version:
$Revision: 1.7 $
Author:
kazm-s@shorindo.com

Constructor Detail

FtpConnection

public FtpConnection()
FTPのセッション管理クラスのコンストラクタ
Method Detail

open

public void open(java.lang.String host)
          throws java.io.IOException
指定したFTPサーバとの間でFTPセッションを開始します。
Parameters:
host - FTPサーバのホスト名もしくはIPアドレス

login

public void login(java.lang.String user,
                  java.lang.String pass)
           throws java.io.IOException
確立されたFTPセッションに対して、ログイン認証を行います。
Parameters:
user - ユーザID
pass - パスワード

quit

public void quit()
          throws java.io.IOException
現在のFTPセッションを終了します。

ls

public java.lang.String[] ls()
                      throws java.io.IOException
FTPサーバにNLSTコマンドを発行し、現在のリモートディレクトリにある ファイル名の一覧を返します。
Returns:
ファイル名を含む配列

ls

public java.lang.String[] ls(java.lang.String dir)
                      throws java.io.IOException
FTPサーバにNLSTコマンドを発行し、指定したディレクトリもしくはファイル名 の一覧を返します。「*」などのワイルドカードの展開は行いませんので、 ファイル名を指定しても、同じ名前のファイル名が返されるだけなので意味は ありません。
Parameters:
dir - ディレクトリ名またはファイル名
Returns:
ファイル名を含む配列

cd

public void cd(java.lang.String dir)
        throws java.io.IOException
FTPサーバ上の現在のディレクトリを変更します。 ログイン直後はユーザのホームディレクトリですが、FTPサーバの設定により 異なります。
Parameters:
dir - 移動先のディレクトリ名

mkdir

public void mkdir(java.lang.String dir)
           throws java.io.IOException
FTPサーバ上に新しいディレクトリを作成します。 指定された名前が既に存在している場合などの理由により、ディレクトリが 作成できなかった場合は、IOExceptionが投げられます。 実際にどのようなときにこの例外が投げられるかは、FTPサーバの返すレスポンス に依存します。
Parameters:
dir - 作成するディレクトリ名

rmdir

public void rmdir(java.lang.String dir)
           throws java.io.IOException
FTPサーバ上のディレクトリを削除します。 通常は削除に失敗したときは、IOExceptionが投げられますが、FTPサーバの返す レスポンスに依存します。
Parameters:
dir - 削除するディレクトリ名

pwd

public java.lang.String pwd()
                     throws java.io.IOException
FTPサーバ上の現在のディレクトリを返します。 返される値はレスポンスコードを含み、形式はサーバに依存します。
Returns:
現在のディレクトリ情報

get

public void get(java.lang.String rfile,
                java.lang.String lfile)
         throws java.io.IOException
FTPサーバからローカルにファイルを受信します。
Parameters:
rfile - FTPサーバ上のファイル名
lfile - ローカルファイル名

put

public void put(java.lang.String lfile,
                java.lang.String rfile)
         throws java.io.IOException
ローカルからFTPサーバにファイルを送信します。
Parameters:
lfile - ローカルファイル名
rfile - FTPサーバ上のファイル名

abort

public void abort()
           throws java.io.IOException
現在の送受信を中断します。 この機能は未対応で、実際には何も起こりません。

ascii

public void ascii()
           throws java.io.IOException
転送モードをASCIIにします。

binary

public void binary()
            throws java.io.IOException
転送モードをBINARYにします。

lcd

public void lcd(java.lang.String dir)
         throws java.io.IOException
ローカルの現在のディレクトリを移動します。 この機能は未対応で、実際には何も起こりません。

delete

public void delete(java.lang.String file)
            throws java.io.IOException
FTPサーバ上のファイルを削除します。
Parameters:
file - FTPサーバ上のファイル名

rename

public void rename(java.lang.String oldfile,
                   java.lang.String newfile)
            throws java.io.IOException
FTPサーバ上のファイルの名前を変更します。
Parameters:
oldfile - FTPサーバ上の現在のファイル名
newfile - FTPサーバ上の新しいファイル名

setInterface

public void setInterface(int h1,
                         int h2,
                         int h3,
                         int h4)
複数のネットワークインタフェースを持つ環境で、使用するインタフェースの IPアドレスを指定します。
Parameters:
h1 - IPアドレスの1バイト目
h2 - IPアドレスの2バイト目
h3 - IPアドレスの3バイト目
h4 - IPアドレスの4バイト目

setTimeout

public void setTimeout(int timer)
ソケットからの読出し時の待ちうけ時間を設定します。 待ちうけ時間のデフォルト値は1000ミリ秒です。
Parameters:
timer - 待ちうけ時間(ミリ秒)

debug

public void debug(int level)
デバッグモードを設定します。 デバッグレベルに0より大きい値を指定すると、プロトコルのトレースを 標準出力に出力します。
Parameters:
level - デバッグレベル

finalize

public void finalize()
              throws java.lang.Throwable
Overrides:
finalize in class java.lang.Object

kazm-s@shorindo.com