# 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、测试(附图)
- 创建文件夹测试
- 修改文件夹名称测试 (这里注意文件夹不是被修改,而是删除前一个文件夹然后再建一个新文件夹,顺序不一定)
- 删除文件夹测试
- 创建文件测试
- 修改文件名称测试 (这里注意文件不是被修改,而是删除前一个文件然后再建一个新文件,顺序不一定)
- 向文件中修改内容测试
- 删除文件测试
