クラス AbstractConnect
- java.lang.Object
-
- org.opengion.fukurou.util.AbstractConnect
-
- すべての実装されたインタフェース:
ConnectIF
- 直系の既知のサブクラス:
FTPConnect
,SFTPConnect
,SMBConnect
public abstract class AbstractConnect extends Object implements ConnectIF
AbstractConnect.java は、共通的に使用される ファイル伝送関連の基本機能を実装した、Abstractクラスです。 -host=サーバー -user=ユーザー -passwd=パスワード -remoteFile=接続先のファイル名 を必須設定します。 -localFile=ローカルのファイル名は、必須ではありませんが、-command=DEL の場合にのみ不要であり、 それ以外の command の場合は、必要です。 -command=[GET/PUT/DEL/GETDIR/PUTDIR/DELDIR] は、サーバーに対しての処理の方法を指定します。 GET:サーバーからローカルにファイル転送します(初期値) PUT:ローカルファイルをサーバーに PUT(STORE、SAVE、UPLOAD、などと同意語)します。 DEL:サーバーの指定のファイルを削除します。この場合のみ、-localFile 属性の指定は不要です。 GETDIR,PUTDIR,DELDIR:指定のフォルダ以下のファイルを処理します。 -mkdirs=[true/false] は、受け側のファイル(GET時:LOCAL、PUT時:サーバー)に取り込むファイルのディレクトリが 存在しない場合に、作成するかどうかを指定します(初期値:true) 通常、サーバーに、フォルダ階層を作成してPUTする場合、動的にフォルダ階層を作成したいケースで便利です。 逆に、フォルダは確定しており、指定フォルダ以外に PUT するのはバグっていると事が分かっている場合には false に設定して、存在しないフォルダにPUT しようとすると、エラーになるようにします。 引数文字列中に空白を含む場合は、ダブルコーテーション("") で括って下さい。 引数文字列の 『=』の前後には、空白は挟めません。必ず、-key=value の様に 繋げてください。- 変更履歴:
- 5.1.6.0 (2010/05/01) 新規追加
- 形式サンプル:
- XXXConnect -host=サーバー -user=ユーザー -passwd=パスワード -remoteFile=接続先のファイル名 [-localFile=ローカルのファイル名] [-command=[GET/PUT/DEL/GETDIR/PUTDIR/DELDIR] ] [-display=[true/false] ] ・・・・ -host=サーバー :接続先のサーバーのアドレスまたは、サーバー名 -user=ユーザー :接続するユーザー名 -passwd=パスワード :接続するユーザーのパスワード -remoteFile=接続先のファイル名 :接続先のサーバー側のファイル名。PUT,GET 関係なくFTP側として指定します。 [-localFile=ローカルのファイル名] :ローカルのファイル名。PUT,GET 関係なくローカルファイルを指定します。 [-port=ポート ] :接続するサーバーのポートを指定します。 [-command=[GET/PUT/DEL] ] :サーバー側での処理の方法を指定します。 [GETDIR/PUTDIR/DELDIR]] GET:FTP⇒LOCAL、PUT:LOCAL⇒FTP への転送です(初期値:GET) DEL:FTPファイルを削除します。 GETDIR,PUTDIR,DELDIR 指定のフォルダ以下のファイルを処理します。 [-mkdirs=[true/false] ] :受け側ファイル(GET時:LOCAL、PUT時:サーバー)にディレクトリを作成するかどうか(初期値:true) (false:ディレクトリが無ければ、エラーにします。) [-encode=エンコード名 ] :日本語ファイル名などのエンコード名を指定します(初期値:Windows-31J) [-timeout=タイムアウト[秒] ] :Dataタイムアウト(初期値:600 [秒]) [-display=[false/true] ] :trueは、検索状況を表示します(初期値:false) [-debug=[false|true] ] :デバッグ情報を標準出力に表示する(true)かしない(false)か(初期値:false[表示しない])
- バージョン
- 5.0
- 作成者
- Kazuhiko Hasegawa
- 導入されたバージョン:
- JDK5.0,
-
-
フィールドの概要
フィールド 修飾子とタイプ フィールド 説明 protected static int
BUFFER_MIDDLE
StringBilderなどの初期値を設定します。protected static String
CR
システムの改行コードを設定します。static boolean
FLAG_NG
異常フラグ falsestatic boolean
FLAG_OK
正常フラグ trueprotected String
host
サーバーprotected boolean
isDebug
デバッグ情報を表示するかどうかprotected boolean
isDisplay
検索状況を表示するかどうかprotected boolean
isMkdirs
ディレクトリを作成するかどうかprotected String
passwd
パスワードprotected String
port
ポートprotected int
timeout
Dataタイムアウトstatic int
TIMEOUT
Dataタイムアウト(初期値:600 [秒])protected String
user
ユーザー
-
コンストラクタの概要
コンストラクタ 修飾子 コンストラクタ 説明 protected
AbstractConnect()
デフォルトコンストラクター
-
メソッドの概要
すべてのメソッド インスタンス・メソッド abstractメソッド concreteメソッド 修飾子とタイプ メソッド 説明 void
action(String command, String localFile, String remoteFile)
command , localFile , remoteFile を元に、FTP処理を行います。protected abstract void
actionDEL(String remoteFile)
command="DEL" が指定されたときの処理を行います。protected abstract void
actionDELdir(String remoteDir)
command="DELDIR" が指定されたときの処理を行います。protected abstract void
actionGET(String localFile, String remoteFile)
command="GET" が指定されたときの処理を行います。protected abstract void
actionGETdir(String localDir, String remoteDir)
command="GETDIR" が指定されたときの処理を行います。protected abstract void
actionPUT(String localFile, String remoteFile)
command="PUT" が指定されたときの処理を行います。protected void
actionPUTdir(String localDir, String remoteDir)
command="PUTDIR" が指定されたときの処理を行います。protected String
addFile(String dir, String file)
ディレクトリとファイル名を合成します。abstract void
connect()
サーバーへの接続、ログインを行います。abstract void
disconnect()
サーバーとの接続をクローズします。protected void
errAppend(Object msg)
処理中に発生したエラーメッセージをセットします。protected void
errAppend(Object... msgs)
処理中に発生したエラーメッセージをセットします。String
getErrMsg()
処理中に発生したエラーメッセージを取り出します。protected String
getPort()
ポートを取得します。protected int
getPort(int defPort)
ポートを取得します。protected void
makeLocalDir(String localFile)
ローカルファイルのディレクトリを作成します。void
setDebug(boolean isDebug)
デバッグ情報の表示可否 を設定します(初期値:false:表示しない)。void
setDisplay(boolean isDisplay)
実行状況の表示可否 を設定します(初期値:false:表示しない)。void
setHostUserPass(String host, String user, String passwd)
サーバーの、ホスト、ユーザー、パスワードを設定します。void
setMkdirs(boolean isMkdirs)
それぞれの受け側ファイルにディレクトリを作成するかどうか(初期値:true:作成する)。void
setPort(String port)
接続に利用するポート番号を設定します。void
setTimeout(int timeout)
タイムアウトを秒で指定します(初期値:600 [秒])。
-
-
-
フィールドの詳細
-
CR
protected static final String CR
システムの改行コードを設定します。
-
BUFFER_MIDDLE
protected static final int BUFFER_MIDDLE
StringBilderなどの初期値を設定します。 200- 関連項目:
- 定数フィールド値
-
FLAG_OK
public static final boolean FLAG_OK
正常フラグ true- 関連項目:
- 定数フィールド値
-
FLAG_NG
public static final boolean FLAG_NG
異常フラグ false- 関連項目:
- 定数フィールド値
-
TIMEOUT
public static final int TIMEOUT
Dataタイムアウト(初期値:600 [秒])- 関連項目:
- 定数フィールド値
-
host
protected String host
サーバー
-
user
protected String user
ユーザー
-
passwd
protected String passwd
パスワード
-
port
protected String port
ポート
-
isMkdirs
protected boolean isMkdirs
ディレクトリを作成するかどうか
-
timeout
protected int timeout
Dataタイムアウト
-
isDisplay
protected boolean isDisplay
検索状況を表示するかどうか
-
isDebug
protected boolean isDebug
デバッグ情報を表示するかどうか
-
-
メソッドの詳細
-
action
public void action(String command, String localFile, String remoteFile)
command , localFile , remoteFile を元に、FTP処理を行います。 このメソッドは、connect( String , String , String )メソッド、および、 paramInit() 実行後に、呼び出す必要があります。 ※ 内部で、command に指定できない値をセットしたか、何らかのエラーが発生した場合。
-
disconnect
public abstract void disconnect()
サーバーとの接続をクローズします。 ログインされている場合は、ログアウトも行います。 コネクトされている場合は、ディスコネクトします。- 定義:
disconnect
インタフェース内ConnectIF
-
actionGET
protected abstract void actionGET(String localFile, String remoteFile) throws IOException
command="GET" が指定されたときの処理を行います。 接続先のサーバー側のファイル名をローカルにダウンロードします。- パラメータ:
localFile
- ローカルのファイル名remoteFile
- 接続先のファイル名- 例外:
IOException
- 何らかのエラーが発生した場合。- 変更履歴:
- 6.0.2.5 (2014/10/31) throws で、Exception を返していたのを、IOException に限定します。
-
actionGETdir
protected abstract void actionGETdir(String localDir, String remoteDir) throws IOException
command="GETDIR" が指定されたときの処理を行います。 接続先のサーバー側のディレクトリ以下をローカルディレクトリに階層構造のままダウンロードします。- パラメータ:
localDir
- ローカルのディレクトリ名remoteDir
- 接続先のディレクトリ名- 例外:
IOException
- 何らかのエラーが発生した場合。- 変更履歴:
- 6.0.2.5 (2014/10/31) throws で、Exception を返していたのを、IOException に限定します。
-
actionPUT
protected abstract void actionPUT(String localFile, String remoteFile) throws IOException
command="PUT" が指定されたときの処理を行います。 ローカルファイルを、接続先のサーバー側にアップロードします。- パラメータ:
localFile
- ローカルのファイル名remoteFile
- 接続先のファイル名- 例外:
IOException
- 何らかのエラーが発生した場合。- 変更履歴:
- 6.0.2.5 (2014/10/31) throws で、Exception を返していたのを、IOException に限定します。
-
actionPUTdir
protected void actionPUTdir(String localDir, String remoteDir) throws IOException
command="PUTDIR" が指定されたときの処理を行います。 ローカルファイルのディレクトリ以下を、接続先のサーバー側のディレクトリに階層構造のままアップロードします。- パラメータ:
localDir
- ローカルのディレクトリ名remoteDir
- 接続先のディレクトリ名- 例外:
IOException
- 何らかのエラーが発生した場合。- 変更履歴:
- 5.3.7.0 (2011/07/01) フォルダにアクセスできない場合は、エラーを返します。, 6.0.2.5 (2014/10/31) throws で、Exception を返していたのを、IOException に限定します。
-
actionDEL
protected abstract void actionDEL(String remoteFile) throws IOException
command="DEL" が指定されたときの処理を行います。 接続先のサーバー側のファイル名を削除します。- パラメータ:
remoteFile
- 接続先のファイル名- 例外:
IOException
- 何らかのエラーが発生した場合。- 変更履歴:
- 6.0.2.5 (2014/10/31) throws で、Exception を返していたのを、IOException に限定します。
-
actionDELdir
protected abstract void actionDELdir(String remoteDir) throws IOException
command="DELDIR" が指定されたときの処理を行います。 接続先のサーバー側のディレクトリ名を削除します。- パラメータ:
remoteDir
- 接続先のディレクトリ名- 例外:
IOException
- 何らかのエラーが発生した場合。- 変更履歴:
- 6.0.2.5 (2014/10/31) throws で、Exception を返していたのを、IOException に限定します。
-
makeLocalDir
protected void makeLocalDir(String localFile) throws IOException
ローカルファイルのディレクトリを作成します。 引数のファイル名は、ファイル名です。作成するディレクトリは、そのファイルオブジェクトの getParentFile() で取得されるディレクトリまでを作成します。 ※ ローカルファイルのディレクトリの作成に失敗した場合は、RuntimeException が throw されます。- パラメータ:
localFile
- ローカルのファイル名- 例外:
IOException
- File#getCanonicalFile() で発生する入出力エラー
-
addFile
protected String addFile(String dir, String file)
ディレクトリとファイル名を合成します。 単純に、ディレクトリの最後と、ファイルの最初の、"/" をチェックし、 存在すれば、そのまま、結合し、存在しなければ、"/" を追加します。 両方に存在する場合は、片方をはずします。- パラメータ:
dir
- ディレクトリ名file
- ファイル名- 戻り値:
- 合成されたファイル名
-
setHostUserPass
public void setHostUserPass(String host, String user, String passwd)
サーバーの、ホスト、ユーザー、パスワードを設定します。- 定義:
setHostUserPass
インタフェース内ConnectIF
- パラメータ:
host
- サーバーuser
- ユーザーpasswd
- パスワード
-
setPort
public void setPort(String port)
接続に利用するポート番号を設定します。
-
getPort
protected String getPort()
ポートを取得します。 設定されている生のport属性(nullもありうる)を返します。- 戻り値:
- ポート
-
getPort
protected int getPort(int defPort)
ポートを取得します。 設定されているport属性が、nullの場合は、defPortを返します。- パラメータ:
defPort
- port が null の場合の初期値- 戻り値:
- ポート
-
setMkdirs
public void setMkdirs(boolean isMkdirs)
それぞれの受け側ファイルにディレクトリを作成するかどうか(初期値:true:作成する)。 -mkdirs=[true/false] は、受け側のファイル(GET時:LOCAL、PUT時:サーバー)に取り込むファイルのディレクトリが 存在しない場合に、作成するかどうかを指定します(初期値:true) 通常、サーバーに、フォルダ階層を作成してPUTする場合、動的にフォルダ階層を作成したいケースで便利です。 逆に、フォルダは確定しており、指定フォルダ以外に PUT するのはバグっていると事が分かっている場合には false に設定して、存在しないフォルダにPUT しようとすると、エラーになるようにします。
-
setTimeout
public void setTimeout(int timeout)
タイムアウトを秒で指定します(初期値:600 [秒])。 オリジナルの FTPClient#setDataTimeout( int ) は、ミリ秒でセット しますが、ここのメソッドでは、秒でセットします。- 定義:
setTimeout
インタフェース内ConnectIF
- パラメータ:
timeout
- タイムアウト[秒]- 例外:
RuntimeException
- タイムアウトの指定が大きすぎた場合
-
setDisplay
public void setDisplay(boolean isDisplay)
実行状況の表示可否 を設定します(初期値:false:表示しない)。- 定義:
setDisplay
インタフェース内ConnectIF
- パラメータ:
isDisplay
- 実行状況の表示可否
-
setDebug
public void setDebug(boolean isDebug)
デバッグ情報の表示可否 を設定します(初期値:false:表示しない)。
-
errAppend
protected void errAppend(Object msg)
処理中に発生したエラーメッセージをセットします。- パラメータ:
msg
- メッセージ化したいオブジェクト
-
errAppend
protected void errAppend(Object... msgs)
処理中に発生したエラーメッセージをセットします。- パラメータ:
msgs
- Object...
-
-