# FileListenerDemo **Repository Path**: LouisMin/file-listener-demo ## Basic Information - **Project Name**: FileListenerDemo - **Description**: SpringBoot项目实现监听服务器上某个目录下的目录及文件的增删改变化 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-02-14 - **Last Updated**: 2025-07-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SpringBoot集成commons-io实现文件监听操作 2025/2/14 | LiuYimin ## 介绍 本项目基于 SpringBoot 集成 commons-io 实现文件监听操作,实现对文件创建、修改、删除、重命名、内容修改等操作的监听,并执行相应的业务逻辑。 **Apacha common.io 2.0** 提供了监听文件变化的功能。功能由下面三个组件组成 : - 监听器 `FileAlterationListener` : 用于实现文件改变时触发的行为。 - 观察者 `FileAlterationObserver` : 用于实现对文件进行观察,并通知注册的监听器执行相应的事件。 - 监视器 `FileAlterationMonitor` : 用于实现对文件进行监控,并注册观察者。(通过一线程每间隔一段时间调用一次注册的观察者检查文件) ## 实现步骤 **版本说明:** - JDK : 1.8 - Spring Boot : 2.7.6 - commons-io : 2.18.0 ### 1、引入依赖 引入 `commons-io` 最新版本依赖 ```.xml commons-io commons-io 2.18.0 ``` ### 2、编写核心代码 - **`FileListener`: 文件监听器** - 通过继承 `FileAlterationListenerAdaptor` 实现自定义文件监听器 - 覆盖相应事件方法, 用于监听并处理文件系统中的文件和目录变化事件 - `FileListenerFactory`: 文件监听器工厂 - `FileListenerRunner`: 监听器启动器 - `ListenerService`: 文件监听业务逻辑服务 ### 3、测试(附图) - 创建文件夹测试 img.png - 修改文件夹名称测试 (这里注意文件夹不是被修改,而是删除前一个文件夹然后再建一个新文件夹,顺序不一定) img.png - 删除文件夹测试 img.png - 创建文件测试 img.png - 修改文件名称测试 (这里注意文件不是被修改,而是删除前一个文件然后再建一个新文件,顺序不一定) img.png - 向文件中修改内容测试 img.png - 删除文件测试 img.png