パッケージ org.opengion.fukurou.util

## クラス SMBConnect

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

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

      public final class SMBConnect
      extends AbstractConnect

  SMBConnect.java は、共通的に使用される Smb関連の基本機能を実装した、クラスです。 これは、jcifs.smb パッケージをベースに開発されています。 このクラスの実行には、jcifs-1.3.14.jar が必要です。 接続先のURL schemeは、以下の形式をしています。 smb://[[[domain;]username[:password]@]server[:port]/[[share/[dir/]file]]][?[param=value[param2=value2[...]]] このURLは、内部的に自動作成します。/[[share/[dir/]file]] 部分が、remoteFile として指定する部分になります。 * -host=Smbサーバー -user=ユーザー -passwd=パスワード -remoteFile=Smb先のファイル名 を必須設定します。 -localFile=ローカルのファイル名は、必須ではありませんが、-command=DEL の場合にのみ不要であり、 それ以外の command の場合は、必要です。 -command=[GET/PUT/DEL/GETDIR/PUTDIR/DELDIR] は、SFTPサーバーに対しての処理の方法を指定します。 GET:Smbサーバーからローカルにファイル転送します(初期値) PUT:ローカルファイルをSmbサーバーに PUT(STORE、SAVE、UPLOAD、などと同意語)します。 DEL:Smbサーバーの指定のファイルを削除します。この場合のみ、-localFile 属性の指定は不要です。 GETDIR,PUTDIR,DELDIR:指定のフォルダ以下のファイルを処理します。 -mkdirs=[true/false] は、受け側のファイル(GET時:LOCAL、PUT時:Smbサーバー)に取り込むファイルのディレクトリが 存在しない場合に、作成するかどうかを指定します(初期値:true)。 通常、Smbサーバーに、フォルダ階層を作成してPUTする場合、動的にフォルダ階層を作成したいケースで便利です。 逆に、フォルダは確定しており、指定フォルダ以外に PUT するのはバグっていると事が分かっている場合には false に設定して、存在しないフォルダにPUT しようとすると、エラーになるようにします。 引数文字列中に空白を含む場合は、ダブルコーテーション("") で括って下さい。 引数文字列の 『=』の前後には、空白は挟めません。必ず、-key=value の様に 繋げてください。
  形式サンプル:
    SMBConnect -host=Smbサーバー -user=ユーザー -passwd=パスワード -remoteFile=Smb先のファイル名 [-localFile=ローカルのファイル名] [-command=[GET/PUT/DEL/GETDIR/PUTDIR/DELDIR] ] ] -host=Smbサーバー ：接続先のSmbサーバーのアドレスまたは、サーバー名 -user=ユーザー ：接続するユーザー名 -passwd=パスワード ：接続するユーザーのパスワード -remoteFile=Smb先のファイル名 ：接続先のSmbサーバー側のファイル名。PUT,GET 関係なくSmb側として指定します。 [-localFile=ローカルのファイル名] ：ローカルのファイル名。PUT,GET 関係なくローカルファイルを指定します。 [-domain=ドメイン ] ：接続するサーバーのドメインを指定します。 [-port=ポート ] ：接続するサーバーのポートを指定します。 [-command=[GET/PUT/DEL] ] ：Smbサーバー側での処理の方法を指定します。 [GETDIR/PUTDIR/DELDIR]] GET:Smb⇒LOCAL、PUT:LOCAL⇒Smb への転送です(初期値:GET) DEL:Smbファイルを削除します。 GETDIR,PUTDIR,DELDIR 指定のフォルダ以下のファイルを処理します。 [-mkdirs=[true/false] ] ：受け側ファイル(GET時:LOCAL、PUT時:Smbサーバー)にディレクトリを作成するかどうか(初期値:true) (false:ディレクトリが無ければ、エラーにします。) [-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`

  - ### コンストラクタの概要

    コンストラクタ
    コンストラクタ | 説明
    --- | ---
    `SMBConnect()` |

  - ### メソッドの概要

    すべてのメソッド 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()` | Smbサーバーへの接続、ログインを行います。
    `void` | `disconnect()` | Smbサーバーとの接続をクローズします。
    `static void` | `main​(java.lang.String[] args)` | このクラスの動作確認用の、main メソッドです。
    `void` | `setDomain​(java.lang.String domain)` | 接続先にログインするドメインを設定します。

    - ### クラスから継承されたメソッド 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`

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

    - #### SMBConnect

          public SMBConnect()

  - ### メソッドの詳細

    - #### connect

          public void connect()

      Smbサーバーへの接続、ログインを行います。 このメソッドは、初期化メソッドです。 Smbサーバーへの接続、ログインを行いますので、複数ファイルを転送する ケースでは、最初に１度だけ呼び出すだけです。 接続先を変更する場合は、もう一度このメソッドをコールする必要があります。 (そのような場合は、通常、オブジェクトを構築しなおす方がよいと思います。) 接続時のアドレスは、下記の形式になりますが、ファイル名の箇所は、action 時に指定するため、 ここでは、先頭部分を先に用意しておきます。 smb://[[[domain;]username[:password]@]server[:port]/[[share/[dir/]file]]][?[param=value[param2=value2[...]]]
      定義:
        `connect` インタフェース内 `ConnectIF`
      定義:
        `connect` クラス内 `AbstractConnect`

    - #### disconnect

          public void disconnect()

      Smbサーバーとの接続をクローズします。 ここでは、何も処理を行いません。
      定義:
        `disconnect` インタフェース内 `ConnectIF`
      定義:
        `disconnect` クラス内 `AbstractConnect`

    - #### actionGET

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

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

    - #### actionGETdir

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

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

    - #### actionPUT

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

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

    - #### actionDEL

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

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

    - #### actionDELdir

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

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

    - #### setDomain

          public void setDomain​(java.lang.String domain)

      接続先にログインするドメインを設定します。
      パラメータ:
        `domain` - 接続先にログインするドメイン

    - #### main

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

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