Package org.miaixz.bus.core.io.watch
Class WatchMonitor
java.lang.Object
java.lang.Thread
org.miaixz.bus.core.io.watch.WatchMonitor
- All Implemented Interfaces:
Closeable,Serializable,AutoCloseable,Runnable
路径监听器
监听器可监听目录或文件 如果监听的Path不存在,则递归创建空目录然后监听此空目录 递归监听目录时,并不会监听新创建的目录
- Since:
- Java 17+
- Author:
- Kimi Liu
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class java.lang.Thread
Thread.Builder, Thread.State, Thread.UncaughtExceptionHandler -
Field Summary
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY -
Constructor Summary
ConstructorsConstructorDescriptionWatchMonitor(Path dir, int maxDepth, WatchEvent.Kind<?>... events) 构造 例如设置:WatchMonitor(Path dir, WatchEvent.Kind<?>... events) 构造 -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()voidrun()setMaxDepth(int maxDepth) 当监听目录时,监听目录的最大深度 当设置值为1(或小于1)时,表示不递归监听子目录 例如设置:setWatcher(Watcher watcher) 设置监听 多个监听请使用WatcherChainvoidwatch()开始监听事件,阻塞当前进程void开始监听事件,阻塞当前进程Methods inherited from class java.lang.Thread
activeCount, checkAccess, clone, countStackFrames, currentThread, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, isVirtual, join, join, join, join, ofPlatform, ofVirtual, onSpinWait, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, sleep, start, startVirtualThread, stop, suspend, threadId, toString, yield
-
Constructor Details
-
WatchMonitor
构造- Parameters:
dir- 字符串路径events- 监听事件列表,如创建、修改和删除等
-
WatchMonitor
构造 例如设置:maxDepth <= 1 表示只监听当前目录 maxDepth = 2 表示监听当前目录以及下层目录 maxDepth = 3 表示监听当前目录以及下两层
- Parameters:
dir- 路径maxDepth- 递归目录的最大深度,当小于2时不递归下层目录events- 监听事件列表,如创建、修改和删除等
-
-
Method Details
-
setWatcher
设置监听 多个监听请使用WatcherChain- Parameters:
watcher- 监听- Returns:
- WatchMonitor
-
run
public void run() -
watch
public void watch()开始监听事件,阻塞当前进程 -
watch
开始监听事件,阻塞当前进程- Parameters:
watcher- 监听- Throws:
InternalException- 监听异常,如果监听关闭抛出此异常
-
setMaxDepth
当监听目录时,监听目录的最大深度 当设置值为1(或小于1)时,表示不递归监听子目录 例如设置:maxDepth <= 1 表示只监听当前目录 maxDepth = 2 表示监听当前目录以及下层目录 maxDepth = 3 表示监听当前目录以及下层
- Parameters:
maxDepth- 最大深度,当设置值为1(或小于1)时,表示不递归监听子目录,监听所有子目录请传Integer.MAX_VALUE- Returns:
- this
-
close
public void close()- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable
-