DiskCleaner 是一个基于 Java 和 JavaFX 开发的磁盘自动清理工具。它主要用于服务器或个人电脑的特定目录监控,自动删除过期文件以释放磁盘空间,防止因日志或临时文件堆积导致磁盘爆满。
- 自动清理: 根据文件的最后修改时间,自动删除超过设定天数的文件。
- 递归扫描: 能够深入扫描指定目录下的所有子目录。
- 空文件夹清理: 自动删除内容已被清空的失效文件夹。
- 智能维护 (Agent Mode): 通过后台任务 (
CleanTask) 旨在自动维持磁盘剩余空间在设定水平(如 35%),动态计算并调整清理的时间阈值。 - 图形用户界面 (GUI): 提供基于 JavaFX 的可视化操作界面(部分功能开发中)。
src/DCFX
├── main
│ ├── FileFolderCleaner.java // 核心清理逻辑:执行文件扫描和删除
│ ├── CleanTask.java // 后台任务:定时执行清理工作的线程
│ ├── TimeCellMaker.java // 阈值计算:根据磁盘容量计算需要清理的天数
│ └── Main.java
├── model
│ └── Path.java // 数据模型
├── view
│ ├── OperateField.fxml // 主操作界面布局
│ ├── OperateFieldController.java // 界面控制器
│ └── RootLayout.fxml // 根布局
└── MainApp.java // 程序启动入口
- Java Development Kit (JDK) 1.8 或更高版本
- 支持 JavaFX (JDK 11+ 可能需要单独引入 JavaFX 模块)
将项目克隆到本地,并使用 Eclipse 或 IntelliJ IDEA 等 IDE 导入。
注意:目前的后台清理任务路径在代码中是硬编码的,使用前必须修改。
打开 src/DCFX/main/CleanTask.java,找到 run() 方法:
// 修改路径为你实际需要监控的文件夹路径
TimeCellMaker dayCellMaker = new TimeCellMaker("/你的/目标/路径", 0.35); // 0.35 代表保留 35% 的空间
// ...
FileFolderCleaner cleaner = new FileFolderCleaner("/你的/目标/路径", timecell);- 启动 GUI: 运行
src/DCFX/MainApp.java。 - 后台任务:
CleanTask设计为线程运行,需要确保在主程序中正确启动该线程。
核心工具类,包含两个主要属性:
filePath: 目标文件夹路径。timeCell: 时间阈值(天)。deleter(): 递归删除超过timeCell天未修改的文件。
后台守护线程:
- 默认每 6 小时执行一次。
- 根据磁盘使用率动态计算建议的清理时间阈值。
GPLv3