Java 通过 commons-io 实现文件夹及子文件夹/文件实时监控,解决 hutool 工具类中 WatchMonitor 文件夹/文件被占用的问题

使用 hutool 工具类中的 WatchMonitor 发现对于多层级的目录会发生占用的情况,所以另寻蹊径,找到了 commons-io 包下的文件监控,并经过测试没有发现 hutool 工具类中所存在的问题,特此提供如下代码供有需要的人参考。
引入依赖

<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.17.0</version>
</dependency>

示例代码

package com.stronglink.filewatch.service;

import com.stronglink.condition.FilewatchCondition;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.filefilter.FileFilterUtils;
import org.apache.commons.io.filefilter.HiddenFileFilter;
import org.apache.commons.io.filefilter.IOFileFilter;
import org.apache.commons.io.monitor.FileAlterationListener;
import org.apache.commons.io.monitor.FileAlterationMonitor;
import org.apache.commons.io.mo