org.opengion.fukurou.util

## クラス FTPConnect

- java.lang.Object
- - org.opengion.fukurou.util.AbstractConnect
  - - org.opengion.fukurou.util.FTPConnect

- すべての実装されたインタフェース:
    ConnectIF

      public final class FTPConnect
      extends AbstractConnect

       FTPConnect.java は、共通的に使用される FTP関連の基本機能を実装した、クラスです。

       これは、org.apache.commons.net.ftp.FTPClient をベースに開発されています。
       このクラスの実行には、commons-net-ftp-2.0.jar が必要です。

       -host=FTPサーバー -user=ユーザー -passwd=パスワード -remoteFile=FTP先のファイル名 を必須設定します。
       -localFile=ローカルのファイル名は、必須ではありませんが、-command=DEL の場合にのみ不要であり、
       それ以外の command の場合は、必要です。

       -mode=[ASCII/BINARY] は、ファイル転送時に、ファイルの種類によって指定します。
       ASCIIモードは、OS毎に異なる改行コードを変換して転送します。BINARYモードは、そのままの姿でやり取りします。

       -command=[GET/PUT/DEL] は、FTPサーバーに対しての処理の方法を指定します。
         GET:FTPサーバーからローカルにファイル転送します(初期値)。
         PUT:ローカルファイルをFTPサーバーに PUT(STORE、SAVE、UPLOAD、などと同意語)します。
         DEL:FTPサーバーの指定のファイルを削除します。この場合のみ、-localFile 属性の指定は不要です。

       -passive=[true/false] は、パッシブモード(ローカルからサーバーへ接続を張る)を利用する場合に宣言します。
       初期値は、true:使用する です。
       通常のFTPでは、アクティブモードでファイルをやり取りします。これは、クライアント側が、サーバーソケットを
       オープンし、指定のポートで待ちうけ状態を作り、FTPサーバー側から接続してもらいます。
       一般的な企業内では、ファイアウォールの設定等で、外部からの接続を制限しているケースが多く、アクティブモード
       では、繋がらない場合が、ほとんどです。
       このクラスでは、初期値をパッシブモードにすることで、企業内のファイアウォールのある環境でも
       接続できるようにしています。

       -mkdirs=[true/false] は、受け側のファイル(GET時:LOCAL、PUT時:FTPサーバー)に取り込むファイルのディレクトリが
       存在しない場合に、作成するかどうかを指定します(初期値:true)。
       通常、FTPサーバーに、フォルダ階層を作成してPUTする場合、動的にフォルダ階層を作成したいケースで便利です。
       逆に、フォルダは確定しており、指定フォルダ以外に PUT するのはバグっていると事が分かっている場合には
       false に設定して、存在しないフォルダにPUT しようとすると、エラーになるようにします。

       引数文字列中に空白を含む場合は、ダブルコーテーション("") で括って下さい。
       引数文字列の 『=』の前後には、空白は挟めません。必ず、-key=value の様に
       繋げてください。

  形式サンプル:

         FTPConnect -host=FTPサーバー -user=ユーザー -passwd=パスワード -remoteFile=FTP先のファイル名 [-localFile=ローカルのファイル名]
                           [-mode=[ASCII/BINARY]  ] [-command=[GET/PUT/DEL] ] [-passive=[true/false] ]

            -host=FTPサーバー                 ：接続先のFTPサーバーのアドレスまたは、サーバー名
            -user=ユーザー                    ：接続するユーザー名
            -passwd=パスワード                ：接続するユーザーのパスワード
            -remoteFile=FTP先のファイル名     ：接続先のFTPサーバー側のファイル名。PUT,GET 関係なくFTP側として指定します。
           [-localFile=ローカルのファイル名]  ：ローカルのファイル名。PUT,GET 関係なくローカルファイルを指定します。
           [-port=ポート ]                    ：接続するサーバーのポートを指定します。
           [-mode=[ASCII/BINARY]  ]           ：扱うファイルの種類を指定します(初期値:ASCII)
           [-command=[GET/PUT/DEL] ]          ：FTPサーバー側での処理の方法を指定します。
                                                      GET:FTP⇒LOCAL、PUT:LOCAL⇒FTP への転送です(初期値:GET)
                                                      DEL:FTPファイルを削除します。
           [-passive=[true/false] ]           ：パッシブモード(ローカルからサーバーへ接続を張る)を利用するかどうか(初期値:true)
                                                      (false:アクティブモード(通常のFTPの初期値)で通信します。)
           [-mkdirs=[true/false]  ]           ：受け側ファイル(GET時:LOCAL、PUT時:FTPサーバー)にディレクトリを作成するかどうか(初期値:true)
                                                      (false:ディレクトリが無ければ、エラーにします。)
           [-encode=エンコード名 ]            ：日本語ファイル名などのエンコード名を指定します(初期値:UTF-8)
           [-timeout=タイムアウト[秒] ]       ：Dataタイムアウト(初期値:600 [秒])
           [-display=[false/true] ]           ：trueは、検索状況を表示します(初期値:false)
           [-debug=[false|true]   ]           ：デバッグ情報を標準出力に表示する(true)かしない(false)か(初期値:false[表示しない])

  変更履歴:
    5.1.6.0 (2010/05/01) 新規追加
  バージョン
    5.0
  作成者
    Kazuhiko Hasegawa
  導入されたバージョン:
    JDK5.0,

- - ### フィールドのサマリー

    - ### クラスから継承されたフィールド org.opengion.fukurou.util.AbstractConnect

      `BUFFER_MIDDLE, CR, FLAG_NG, FLAG_OK, host, isDebug, isDisplay, isMkdirs, passwd, port, timeout, TIMEOUT, user`

  - ### コンストラクタのサマリー

    コンストラクタ
    コンストラクタと説明
    `FTPConnect()` デフォルトコンストラクター

  - ### メソッドのサマリー

    すべてのメソッド staticメソッド インスタンス・メソッド concreteメソッド
    修飾子とタイプ | メソッドと説明
    --- | ---
    `protected void` | `actionDEL(java.lang.String remoteFile)` command="DEL" が指定されたときの処理を行います。
    `protected void` | `actionDELdir(java.lang.String remoteDir)` command="DELDIR" が指定されたときの処理を行います。
    `protected void` | `actionGET(java.lang.String localFile, java.lang.String remoteFile)` command="GET" が指定されたときの処理を行います。
    `protected void` | `actionGETdir(java.lang.String localDir, java.lang.String remoteDir)` command="GETDIR" が指定されたときの処理を行います。
    `protected void` | `actionPUT(java.lang.String localFile, java.lang.String remoteFile)` command="PUT" が指定されたときの処理を行います。
    `void` | `connect()` FTPサーバーへの接続、ログインを行います。
    `void` | `disconnect()` FTPサーバーとの接続をクローズします。
    `static void` | `main(java.lang.String[] args)` このクラスの動作確認用の、main メソッドです。
    `void` | `setEncode(java.lang.String encode)` 日本語ファイル名などのエンコード名を指定します(初期値:UTF-8)。
    `void` | `setMode(java.lang.String mode)` 扱うファイルの種類を指定します (初期値:ASCII)。
    `void` | `setPassive(boolean isPassive)` パッシブモードを利用するかどうか(true:パッシブ)を設定します(初期値:true)。

    - ### クラスから継承されたメソッド org.opengion.fukurou.util.AbstractConnect

      `action, actionPUTdir, addFile, errAppend, errAppend, getErrMsg, getPort, getPort, makeLocalDir, setDebug, setDisplay, setHostUserPass, setMkdirs, setPort, setTimeout`

    - ### クラスから継承されたメソッド java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### コンストラクタの詳細

    - #### FTPConnect

          public FTPConnect()

      デフォルトコンストラクター
      変更履歴:
        6.4.1.1 (2016/01/16) PMD refactoring. It is a good practice to call super() in a constructor

  - ### メソッドの詳細

    - #### connect

          public void connect()

      FTPサーバーへの接続、ログインを行います。 このメソッドは、初期化メソッドです。 FTPサーバーへの接続、ログインを行いますので、複数ファイルを転送する ケースでは、最初に１度だけ呼び出すだけです。 接続先を変更する場合は、もう一度このメソッドをコールする必要があります。 (そのような場合は、通常、オブジェクトを構築しなおす方がよいと思います。)
      定義:
        `connect` インタフェース内 `ConnectIF`
      定義:
        `connect` クラス内 `AbstractConnect`
      変更履歴:
        6.4.2.0 (2016/01/29) ex.printStackTrace() を、ThrowUtil#ogStackTrace(Throwable) に置き換え。

    - #### disconnect

          public void disconnect()

      FTPサーバーとの接続をクローズします。 ログインされている場合は、ログアウトも行います。 コネクトされている場合は、ディスコネクトします。
      定義:
        `disconnect` インタフェース内 `ConnectIF`
      定義:
        `disconnect` クラス内 `AbstractConnect`
      変更履歴:
        6.4.2.0 (2016/01/29) ex.printStackTrace() を、ThrowUtil#ogStackTrace(Throwable) に置き換え。

    - #### actionGET

          protected void actionGET(java.lang.String localFile,
                                   java.lang.String remoteFile)
                            throws java.io.IOException

      command="GET" が指定されたときの処理を行います。 接続先のFTPサーバー側のファイル名をローカルにダウンロードします。
      定義:
        `actionGET` クラス内 `AbstractConnect`
      パラメータ:
        `localFile` - ローカルのファイル名
        `remoteFile` - FTP先のファイル名
      例外:
        `java.io.IOException` - 入出力エラーが発生したとき

    - #### actionGETdir

          protected void actionGETdir(java.lang.String localDir,
                                      java.lang.String remoteDir)
                               throws java.io.IOException

      command="GETDIR" が指定されたときの処理を行います。 接続先のFTPサーバー側のディレクトリ以下をローカルディレクトリに階層構造のままダウンロードします。
      定義:
        `actionGETdir` クラス内 `AbstractConnect`
      パラメータ:
        `localDir` - ローカルのディレクトリ名
        `remoteDir` - FTP先のディレクトリ名
      例外:
        `java.io.IOException` - 入出力エラーが発生したとき

    - #### actionPUT

          protected void actionPUT(java.lang.String localFile,
                                   java.lang.String remoteFile)
                            throws java.io.IOException

      command="PUT" が指定されたときの処理を行います。 ローカルファイルを、接続先のFTPサーバー側にアップロードします。
      定義:
        `actionPUT` クラス内 `AbstractConnect`
      パラメータ:
        `localFile` - ローカルのファイル名
        `remoteFile` - FTP先のファイル名
      例外:
        `java.io.IOException` - 入出力エラーが発生したとき

    - #### actionDEL

          protected void actionDEL(java.lang.String remoteFile)
                            throws java.io.IOException

      command="DEL" が指定されたときの処理を行います。 接続先のFTPサーバー側のファイル名を削除します。
      定義:
        `actionDEL` クラス内 `AbstractConnect`
      パラメータ:
        `remoteFile` - FTP先のファイル名
      例外:
        `java.io.IOException` - 入出力エラーが発生したとき

    - #### actionDELdir

          protected void actionDELdir(java.lang.String remoteDir)
                               throws java.io.IOException

      command="DELDIR" が指定されたときの処理を行います。 接続先のFTPサーバー側のディレクトリ名を削除します。
      定義:
        `actionDELdir` クラス内 `AbstractConnect`
      パラメータ:
        `remoteDir` - FTP先のディレクトリ名
      例外:
        `java.io.IOException` - 入出力エラーが発生したとき

    - #### setMode

          public void setMode(java.lang.String mode)

      扱うファイルの種類を指定します (初期値:ASCII)。 ファイルを FTP でやり取りする場合、ASCII 指定すると、OSの改行コードの違いを 吸収して、ファイルのやり取りが行われます。(つまり、改行コード変換が行われます。) BINARY 指定すると、現状のファイルのまま、やり取りされます。 これは、たとえ、アスキーファイルであっても、そのままの姿でやり取りされるということです。 内部的には、isAsciiMode 属性に、true:ASCII / false:BINARY で管理されます。
      パラメータ:
        `mode` - 扱うファイルの種類を指定します [ASCII/BINARY]

    - #### setPassive

          public void setPassive(boolean isPassive)

      パッシブモードを利用するかどうか(true:パッシブ)を設定します(初期値:true)。 パッシブモード(ローカルからサーバーへ接続を張る)を利用する場合に宣言します。 通常のFTPでは、アクティブモードでファイルをやり取りします。これは、クライアント側が、サーバーソケットを オープンし、指定のポートで待ちうけ状態を作り、FTPサーバー側から接続してもらいます。 一般的な企業内では、ファイアウォールの設定等で、外部からの接続を制限しているケースが多く、アクティブモード では、繋がらない場合が、ほとんどです。 このクラスでは、初期値をパッシブモードにすることで、企業内のファイアウォールのある環境でも 接続できるようにしています。
      パラメータ:
        `isPassive` - パッシブモードを利用するかどうか。(true:パッシブ)

    - #### setEncode

          public void setEncode(java.lang.String encode)

      日本語ファイル名などのエンコード名を指定します(初期値:UTF-8)。
      パラメータ:
        `encode` - エンコード名

    - #### main

          public static void main(java.lang.String[] args)

      このクラスの動作確認用の、main メソッドです。
      パラメータ:
        `args` - コマンド引数配列

Webアプリケーションフレームワーク openGion
Copyright (c) 2009 The openGion Project.