Windows AppData Manager 是一款本地运行的 Windows 桌面工具。它扫描当前用户的 Local、LocalLow 与 Roaming 数据目录,将文件归属到应用,区分缓存、日志、配置、凭据等数据类型,并为符合保守条件的项目生成清理计划。
Important
项目仍在积极开发中。清理流程已经包含二次验证、运行中进程检查、回收站操作和审计记录,但重要数据仍建议保留独立备份。
| 能力 | 说明 |
|---|---|
| 应用归属分析 | 结合内置规则、安装注册表、Appx 包、可执行文件元数据与签名证据识别数据来源 |
| 并行渐进扫描 | 按扫描单位并行分析,完成一个单位就更新结果,并提供单调递增的进度与当前路径 |
| 数据风险分类 | 区分缓存、日志、临时文件、配置、数据库、会话、Cookie、凭据、存档等类别 |
| 残留判断 | 综合安装证据与阻断原因标记潜在卸载残留,避免只按目录名称下结论 |
| 安全清理计划 | 仅纳入通过保守规则的候选项,允许逐项确认并显示预计释放空间 |
| 可恢复执行 | 执行前重新验证路径身份与进程状态,使用 Windows 回收站而非直接永久删除 |
| 本地审计 | 使用 SQLite 保存清理结果与失败信息,完成后自动重新扫描 |
| 桌面级界面 | 支持浅色、深色、跟随系统,以及标准、减少、关闭三档动效偏好 |
flowchart LR
A[扫描 AppData] --> B[解析应用归属]
B --> C[分类与风险评估]
C --> D[渐进显示结果]
D --> E[生成保守清理计划]
E --> F[执行前二次验证]
F --> G[移动到回收站]
G --> H[记录审计并重新扫描]
扫描本身只读取文件系统和本机安装证据。只有用户在“清理建议”中确认所选项目后,程序才会尝试移动文件;身份变化、重解析点、运行中进程或权限异常都会阻止对应项目被处理。
- Windows 10 或 Windows 11,64 位
- Visual Studio 2022 或 Build Tools 2022,安装“使用 C++ 的桌面开发”
- CMake 3.16 或更高版本
- Qt 6.9.x MSVC 2022 64-bit,包含
Qt Quick、Qt Quick Controls 2与Qt Test - Ninja(推荐,与项目 CI 配置一致)
当前持续集成使用 Qt 6.9.2、MSVC 2022 和 Ninja Multi-Config。
在已加载 MSVC x64 开发环境的终端中执行:
git clone https://github.com/Cloudwhile/WindowsAppDataManager.git
cd WindowsAppDataManager
cmake -S . -B out/build/local `
-G "Ninja Multi-Config" `
-DBUILD_TESTING=ON `
-DCMAKE_PREFIX_PATH="C:/Qt/6.9.2/msvc2022_64"
cmake --build out/build/local --config Release --parallel 2Qt 6 的 Windows 构建会在链接后自动运行 windeployqt。使用上述生成器时,程序通常位于:
out/build/local/WindowsAppDataManager/Release/WindowsAppDataManager.exe
不同生成器的配置子目录可能不同;也可以通过 cmake --build 的输出确认最终位置。
cmake --build out/build/local `
--config Debug `
--target WindowsAppDataManager_qmllint `
--parallel 2
ctest --test-dir out/build/local `
-C Debug `
--output-on-failure `
--no-tests=error测试覆盖后端分类、安装证据、残留判断、Windows 文件身份、安全清理、QML 模型,以及完整根界面的启动装载。启动冒烟测试可拦截“编译成功但 QML 类型链无法加载”的回归。
- 在“扫描概览”开始扫描。扫描期间可以观察数字进度、当前路径和逐步出现的应用结果。
- 在“应用管理”中按名称、发布者、分类、安装状态或风险筛选,并查看应用的数据构成和归属证据。
- 在“清理建议”中检查候选项、影响和预计释放空间,只选择确认可以重新生成的内容。
- 确认后,程序会再次验证每个项目并移动到 Windows 回收站。需要时可从回收站恢复。
程序不会把扫描结果上传到网络。主题和动效偏好保存在当前用户的应用设置中,清理历史保存在本机应用数据目录的 SQLite 数据库中。
WindowsAppDataManager/
├─ components/ 可复用 QML 组件
├─ pages/ 概览、应用、详情、清理与设置页面
├─ theme/ 色彩与动效令牌
├─ rules/ 规则架构与内置应用规则
├─ src/
│ ├─ core/ 扫描、解析、分类、风险和清理计划
│ ├─ platform/windows/ Windows 注册表、Appx、签名、路径与回收站适配
│ ├─ qmlmodels/ QML 可观察模型与页面状态
│ ├─ repositories/ 本地清理历史
│ └─ services/ 异步扫描与清理编排
└─ tests/ Qt Test 回归测试
当前仓库包含 Chrome、Chromium、Discord、Visual Studio Code、JetBrains、Windows 临时目录和 npm 缓存等规则。规则文件位于 WindowsAppDataManager/rules/builtin,格式约束见 schema.json。
新增或修改规则时,请同时补充对应测试,并确保未知或证据不足的数据保持保守风险级别。
欢迎通过 Issue 描述可复现的问题,或提交范围清晰的 Pull Request。提交前请至少完成:
cmake --build out/build/local --config Debug --target WindowsAppDataManager_qmllint
cmake --build out/build/local --config Debug --parallel 2
ctest --test-dir out/build/local -C Debug --output-on-failure --no-tests=error涉及清理边界、路径验证或权限处理的改动,应附带失败路径和竞态场景测试。
本项目基于 MIT License 开源。