云计算百科
云计算领域专业知识百科平台

开源一个安全优先的 Windows C 盘清理工具:PowerShell + WPF + AppData 精确扫描

开源一个安全优先的 Windows C 盘清理工具:PowerShell + WPF + AppData 精确扫描

Windows 用久以后,C 盘空间往往被用户临时文件、浏览器缓存、崩溃日志、开发工具缓存以及 AppData 中的应用数据占据。真正困难的并不是找到“大目录”,而是判断这些数据有什么作用、删除后会发生什么。

因此我做了一个开源的 C 盘清理助手。它的设计原则不是“一键清理越多越好”,而是:先解释数据的作用,再由用户决定是否删除。

项目地址:

  • GitHub:https://github.com/qinsss/windows-c-clear
  • Gitee:https://gitee.com/qin_s/windows-c-clear

项目支持 Windows 10/11,提供单文件免安装版本,不要求管理员权限。

主要功能

目前工具包含三类信息:

  • 可清理候选:用户临时文件、浏览器缓存、崩溃转储、DirectX 着色器缓存、开发工具依赖与构建缓存等。
  • AppData(应用数据):分析 Local、LocalLow 和 Roaming 下各应用或厂商目录的占用,支持快速估算和精确扫描。
  • Windows 系统清理项:说明 Windows Update、WinSxS、Windows.old、驱动、休眠文件、分页文件和还原点等数据应如何通过 Windows 自带功能处理。
    在这里插入图片描述
  • 首次启动只加载界面,不会自动扫描磁盘。快速扫描在隐藏后台进程运行并显示 Loading;精确扫描则显示百分比、已处理目录数量和当前位置。

    为什么不能看到 Cache 就直接删除

    AppData 中确实存在大量可重新生成的缓存,但也可能包含:

    • 应用登录状态;
    • 用户设置;
    • 本地数据库;
    • 聊天记录或离线文件;
    • 尚未同步到云端的数据。

    所以工具不会简单地把整个 AppData 标记为“垃圾”。每项都会展示应用或厂商、区域、容量、文件数、用途和风险。用户还可以双击项目,在资源管理器中核对真实位置。

    快速扫描和精确扫描

    快速扫描的目标是尽快提供可操作结果。对于特别大的目录,它会限制遍历时间和文件数量,所以容量使用“至少”表示。这样可以避免应用一启动就长时间卡在某个超大缓存目录。

    精确扫描则会完整遍历 AppData。扫描工作放在独立 PowerShell 进程中,主界面通过进度文件读取状态,因此 UI 不会被磁盘遍历阻塞。关闭主窗口时,也会结束扫描进程并清理临时结果。

    这也是为什么资源管理器显示 AppData 为 36 GB,而快速扫描可能只显示 13 GB:两者统计目标不同。除此之外,权限、正在变化的文件、压缩占用和目录链接也可能带来差异。

    删除边界如何控制

    清理程序最重要的代码不是“删除”,而是“哪些路径绝对不能删除”。项目做了以下限制:

    • 所有项目默认不勾选;
    • 系统目录经过硬性路径保护;
    • 只处理用户明确选择的项目;
    • AppData 项目需要路径明细确认和第二次高风险确认;
    • 同时选择父目录和子目录时阻止执行;
    • 不跟随目录联接或符号链接;
    • 缓存目录只清空内容,不删除应用依赖的目录本身;
    • 正在被其他程序占用的文件会跳过;
    • 删除默认进入 Windows 回收站。

    项目明确不会直接删除 WinSxS、DriverStore、Windows Installer 缓存、分页文件、注册表和未知系统数据。这些区域应该交给 Windows 服务和系统设置维护。

    PowerShell + WPF 的实现方式

    界面使用 PowerShell 加载 WPF XAML,扫描与删除规则放在独立的核心脚本中。这样可以直接调用 Windows/.NET 能力,同时保持规则容易阅读和审查。

    免安装版本使用一个很小的 C# WinExe 宿主,将主脚本、核心脚本和图标作为资源嵌入 EXE。运行时释放到随机临时目录,寻找 Windows PowerShell 或 PowerShell 7,以隐藏窗口方式启动,退出后清理临时文件。

    仓库还配置了 GitHub Actions:每次推送都在 Windows Runner 上运行路径保护测试并构建免安装程序;推送版本标签时自动创建 Release,并上传 EXE 和 SHA-256 校验文件。

    当前局限

    项目目前仍有几个明确限制:

    • 没有商业代码签名证书,首次运行可能出现 SmartScreen 提示;
    • 不绕过 Windows 文件权限;
    • 不强制关闭正在占用文件的应用;
    • 不负责清理需要管理员权限的系统组件;
    • 精确扫描大型 AppData 可能需要数分钟。

    这些限制有一部分是刻意保留的安全边界,而不是单纯的功能缺失。

    欢迎反馈

    如果你愿意试用,我最希望收到以下反馈:

    • 哪些大目录没有被正确识别;
    • 数据用途和风险说明是否准确;
    • 快速扫描与精确扫描结果是否符合预期;
    • 哪些交互仍然让你不放心。

    提交截图或路径前,请隐藏 Windows 用户名、公司软件信息和账号标识。

    GitHub:https://github.com/qinsss/windows-c-clear

    Gitee:https://gitee.com/qin_s/windows-c-clear

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » 开源一个安全优先的 Windows C 盘清理工具:PowerShell + WPF + AppData 精确扫描
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!