クラス 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 intBUFFER_MIDDLEStringBilderなどの初期値を設定します。protected static StringCRシステムの改行コードを設定します。static booleanFLAG_NG異常フラグ falsestatic booleanFLAG_OK正常フラグ trueprotected Stringhostサーバーprotected booleanisDebugデバッグ情報を表示するかどうかprotected booleanisDisplay検索状況を表示するかどうかprotected booleanisMkdirsディレクトリを作成するかどうかprotected Stringpasswdパスワードprotected Stringportポートprotected inttimeoutDataタイムアウトstatic intTIMEOUTDataタイムアウト(初期値:600 [秒])protected Stringuserユーザー
-
コンストラクタの概要
コンストラクタ 修飾子 コンストラクタ 説明 protectedAbstractConnect()デフォルトコンストラクター
-
メソッドの概要
すべてのメソッド インスタンス・メソッド abstractメソッド concreteメソッド 修飾子とタイプ メソッド 説明 voidaction(String command, String localFile, String remoteFile)command , localFile , remoteFile を元に、FTP処理を行います。protected abstract voidactionDEL(String remoteFile)command="DEL" が指定されたときの処理を行います。protected abstract voidactionDELdir(String remoteDir)command="DELDIR" が指定されたときの処理を行います。protected abstract voidactionGET(String localFile, String remoteFile)command="GET" が指定されたときの処理を行います。protected abstract voidactionGETdir(String localDir, String remoteDir)command="GETDIR" が指定されたときの処理を行います。protected abstract voidactionPUT(String localFile, String remoteFile)command="PUT" が指定されたときの処理を行います。protected voidactionPUTdir(String localDir, String remoteDir)command="PUTDIR" が指定されたときの処理を行います。protected StringaddFile(String dir, String file)ディレクトリとファイル名を合成します。abstract voidconnect()サーバーへの接続、ログインを行います。abstract voiddisconnect()サーバーとの接続をクローズします。protected voiderrAppend(Object msg)処理中に発生したエラーメッセージをセットします。protected voiderrAppend(Object... msgs)処理中に発生したエラーメッセージをセットします。StringgetErrMsg()処理中に発生したエラーメッセージを取り出します。protected StringgetPort()ポートを取得します。protected intgetPort(int defPort)ポートを取得します。protected voidmakeLocalDir(String localFile)ローカルファイルのディレクトリを作成します。voidsetDebug(boolean isDebug)デバッグ情報の表示可否 を設定します(初期値:false:表示しない)。voidsetDisplay(boolean isDisplay)実行状況の表示可否 を設定します(初期値:false:表示しない)。voidsetHostUserPass(String host, String user, String passwd)サーバーの、ホスト、ユーザー、パスワードを設定します。voidsetMkdirs(boolean isMkdirs)それぞれの受け側ファイルにディレクトリを作成するかどうか(初期値:true:作成する)。voidsetPort(String port)接続に利用するポート番号を設定します。voidsetTimeout(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...
-
-