クラス FileWatch
java.lang.Object
org.opengion.fukurou.fileexec.FileWatch
- すべての実装されたインタフェース:
Runnable
FileWatch は、ファイル監視を行うクラスです。
ファイルが、追加(作成)、変更、削除された場合に、イベントが発生します。 このクラスは、Runnable インターフェースを実装しているため、Thread で実行することで、 個々のフォルダの監視を行います。
- 変更履歴:
- 7.0.0.0 (2017/07/07) 新規作成
- 導入されたバージョン:
- JDK1.8,
-
フィールドの概要
フィールド修飾子とタイプフィールド説明static final WatchEvent.Kind
<Path> Path に、WatchService を register するときの作成イベントの簡易指定できるように。static final WatchEvent.Kind
<Path> Path に、WatchService を register するときの削除イベントの簡易指定できるように。static final String
DirWatch でスキャンした場合のイベント名 "DirWatch"static final WatchEvent.Kind
<Path> Path に、WatchService を register するときの変更イベントの簡易指定できるように。static final WatchEvent.Kind
<?> Path に、WatchService を register するときの特定不能時イベントの簡易指定できるように。static final int
7.4.4.0 (2021/06/30) stop() してから、実際に止まるまで 待機する回数static final int
7.4.4.0 (2021/06/30) stop() してから、実際に止まるまで 待機する時間 (ms ) -
コンストラクタの概要
コンストラクタ -
メソッドの概要
修飾子とタイプメソッド説明void
callback
(BiConsumer<String, Path> act) イベントの種類と、ファイルパスを、引数に取る BiConsumer ダオブジェクトを設定します。boolean
このファイル監視で、最後に処理した結果が、エラーの場合に、true を返します。void
run()
Runnableインターフェースのrunメソッドです。void
setDirWatchEndsWith
(String... endKey) 何らかの原因でイベントを掴み損ねた場合の、フォルダスキャンの対象ファイルの拡張子を指定します。void
setEventKinds
(WatchEvent.Kind<?>... kind) 指定のイベントの種類のみ、監視対象に設定します。void
setPathEndsWith
(String... endKey) 指定のパスが、指定の文字列と、終端一致(endsWith) したパスのみ、callback されます。void
setPathMatcher
(PathMatcher pathMch) 指定のパスの照合操作で、パターンに一致したパスのみ、callback されます。void
setUseDirWatch
(boolean flag) 何らかの原因でイベントを掴み損ねた場合に、フォルダスキャンするかどうかを指定します。void
start()
フォルダの監視を開始します。void
stop()
フォルダの監視を終了します。toString()
このオブジェクトの文字列表現を返します。
-
フィールド詳細
-
CREATE
Path に、WatchService を register するときの作成イベントの簡易指定できるように。 -
MODIFY
Path に、WatchService を register するときの変更イベントの簡易指定できるように。 -
DELETE
Path に、WatchService を register するときの削除イベントの簡易指定できるように。 -
OVERFLOW
Path に、WatchService を register するときの特定不能時イベントの簡易指定できるように。 -
DIR_WATCH_EVENT
DirWatch でスキャンした場合のイベント名 "DirWatch"- 関連項目:
-
STOP_WATI_TIME
7.4.4.0 (2021/06/30) stop() してから、実際に止まるまで 待機する時間 (ms )- 関連項目:
-
STOP_WATI_CNT
7.4.4.0 (2021/06/30) stop() してから、実際に止まるまで 待機する回数- 関連項目:
-
-
コンストラクタの詳細
-
FileWatch
処理対象のフォルダのパスオブジェクトを指定して、ファイル監視インスタンスを作成します。 ここでは、指定のフォルダの内のファイルのみ監視します。 これは、new FileWatch( dir , false ) とまったく同じです。- パラメータ:
dir
- 処理対象のフォルダオブジェクト
-
FileWatch
処理対象のフォルダのパスオブジェクトと、監視対象方法を指定して、ファイル監視インスタンスを作成します。 useTree を true に設定すると、指定のフォルダの内のフォルダ階層を、すべて監視対象とします。- パラメータ:
dir
- 処理対象のフォルダのパスオブジェクトuseTree
- フォルダツリーの階層をさかのぼって監視するかどうか(true:フォルダ階層を下る)
-
-
メソッドの詳細
-
setEventKinds
指定のイベントの種類のみ、監視対象に設定します。 ここで指定したイベントのみ、監視対象になり、callback されます。 第一引数は、イベントの種類(ENTRY_CREATE,ENTRY_MODIFY,ENTRY_DELETE,OVERFLOW)- パラメータ:
kind
- 監視対象に設定するイベントの種類- 関連項目:
-
setPathMatcher
指定のパスの照合操作で、パターンに一致したパスのみ、callback されます。 ここで指定したパターンの一致を判定し、一致した場合は、callback されます。 指定しない場合は、すべて許可されたことになります。 なお、#setPathEndsWith(String...) と、この設定は同時には行うことは出来ません。 (最後に登録した条件が、適用されます。)- パラメータ:
pathMch
- パスの照合操作のパターン- 関連項目:
-
setPathEndsWith
指定のパスが、指定の文字列と、終端一致(endsWith) したパスのみ、callback されます。 これは、#setPathMatcher(PathMatcher) の簡易指定版です。 指定の終端文字列(一般には拡張子)のうち、ひとつでも一致すれば、true となりcallback されます。 指定しない場合(null)は、すべて許可されたことになります。 終端文字列の判定には、大文字小文字の区別を行いません。 なお、#setPathMatcher(PathMatcher) と、この設定は同時には行うことは出来ません。 (最後に登録した条件が、適用されます。)- パラメータ:
endKey
- パスの終端一致のパターン- 関連項目:
-
callback
イベントの種類と、ファイルパスを、引数に取る BiConsumer ダオブジェクトを設定します。 これは、関数型インタフェースなので、ラムダ式またはメソッド参照の代入先として使用できます。 イベントが発生したときの イベントの種類と、そのファイルパスを引数に、accept(String,Path) メソッドが呼ばれます。 第一引数は、イベントの種類(ENTRY_CREATE,ENTRY_MODIFY,ENTRY_DELETE,OVERFLOW) 第二引数は、ファイルパス(監視フォルダで、resolveされた、正式なフルパス)- パラメータ:
act
- 2つの入力(イベントの種類 とファイルパス) を受け取る関数型インタフェース- 関連項目:
-
setUseDirWatch
何らかの原因でイベントを掴み損ねた場合に、フォルダスキャンするかどうかを指定します。 スキャン開始の遅延時間と、スキャン間隔、ファイルのタイムスタンプとの比較時間等は、 DirWatch の初期値をそのまま使用するため、ここでは指定できません。 個別に指定したい場合は、このフラグをfalse にセットして、個別に、DirWatch を作成してください。 このメソッドでは、#setPathEndsWith( String... )や、#setPathMatcher( PathMatcher ) で 指定した条件が、そのまま適用されます。- パラメータ:
flag
- フォルダスキャンするかどうか(true:する/false:しない)- 関連項目:
-
setDirWatchEndsWith
何らかの原因でイベントを掴み損ねた場合の、フォルダスキャンの対象ファイルの拡張子を指定します。 このメソッドを使用する場合は、useDirWatch は、true にセットされます。 スキャン開始の遅延時間と、スキャン間隔、ファイルのタイムスタンプとの比較時間等は、 DirWatch の初期値をそのまま使用するため、ここでは指定できません。 このメソッドでは、DirWatch 対象の終端パターンを独自に指定できますが、FileWatch で で指定した条件も、クリアされるので、含める必要があります。- パラメータ:
endKey
- パスの終端一致のパターン- 関連項目:
-
isErrorStatus
このファイル監視で、最後に処理した結果が、エラーの場合に、true を返します。 通常は、対象フォルダが見つからない場合や、フォルダスキャン(DirWatch)で エラーが発生した場合に、true にセットされます。 また、stop() メソッドが呼ばれた場合も、true にセットされます。- 戻り値:
- エラー状態(true:エラー,false:正常)
- 変更履歴:
- 7.2.9.4 (2020/11/20) PMD:volatile boolean の代替え。
-
start
フォルダの監視を開始します。- 変更履歴:
- 7.2.9.4 (2020/11/20) PMD:volatile boolean の代替え。, 7.4.4.0 (2021/06/30) stop() してから、実際に止まるまでの時間、待機します。, 8.1.0.3 (2022/01/21) スレッドに名前を付けておきます。 自身を、Threadに登録して、Thread#start() を実行します。 内部の Thread オブジェクトがなければ、新しく作成します。 すでに、実行中の場合は、何もしません。 条件を変えて、実行したい場合は、stop() メソッドで、一旦スレッドを 停止させてから、再び、#start() メソッドを呼び出してください。
-
stop
フォルダの監視を終了します。 自身を登録しているThreadに、割り込みをかけるため、 Thread#interrupt() を実行します。 フォルダ監視は、ファイル変更イベントが発生するまで待機していますが、 interrupt() を実行すると、強制的に中断できます。 内部の Thread オブジェクトは、破棄するため、再び、start() メソッドで 実行再開することが可能です。- 変更履歴:
- 7.2.9.4 (2020/11/20) PMD:volatile boolean の代替え。, 7.4.4.0 (2021/06/30) thread の存在有無にかかわらず、running は停止状態にする。
-
run
Runnableインターフェースのrunメソッドです。 規定のスケジュール時刻が来ると、呼ばれる runメソッドです。 -
toString
このオブジェクトの文字列表現を返します。
-