
C 盘又飘红了。打开资源管理器一看C:\Windows\Temp、C:\Users\你的用户名\AppData\Local\Temp、浏览器缓存、微信文件、升级补丁的残留全都堆在一起空间就这么偷偷没了。手动一个个文件夹删一是麻烦二是不敢乱动系统文件生怕把软件环境弄坏。这次我们来看一个思路比较直接的解决方向AIDiskCleaner一个开源的 C 盘缓存分析和清理工具。这个项目解决的痛点很明确——帮你快速定位哪些缓存可以删、哪些不能碰减少“凭感觉删文件”的风险。本文会根据开源项目的常见形态整理出一套可落地的部署、扫描、清理和自动化流程。如果你遇到的主要问题不是“下载了各种清理软件还要仔细调参数”而是想要一个可控、可看日志、能自己增删清理规则的开源方案那么这篇文章可以直接收藏。1. 核心能力速览AIDiskCleaner 这类“AI 智能分析 磁盘清理”工具与传统的清理软件有一个明显区别它不只是按目录扫一圈给出总大小而是会把文件按“缓存、临时文件、日志、可迁移数据、不能动”做分类判断给用户一个接近“先判断再清理”的操作路径。由于这是一个可以用开源方式分发的 Windows 桌面工具先按通用规格角度列一个速览表。以下内容均基于项目标题定义和常见开源发行方式推断具体参数以你下载到的 Release 版本为准。能力项说明项目类型Windows 本机磁盘缓存分析与清理工具是否开源标题明确为开源项目代码通常托管在 GitHub / Gitee核心功能扫描 C 盘缓存目录、归类展示、清理缓存、预览可释放空间“AI”分析定位用智能归类方式区分安全项与风险项降低误删概率主要适用平台Windows 10 / Windows 11目录权限机制最合适启动方式通常为双击 EXE / GUI 启动或命令行带参数扫描是否支持 CPU/GPU本类工具不依赖 GPU主要占用 CPU 和磁盘 IO是否支持 API原版不一定有标准 REST API但可通过命令行与任务计划程序组合实现定时清理是否支持批量任务可以批量处理多个缓存类型目录顺序受文件占用锁定影响适合场景个人 PC 日常维护、开发机缓存清理、装机后瘦身、批量巡检若干台测试机风险边界不能替代系统级备份删除前需确认目录内容如果你的预期是一个“全自动删除所有文件”的软件建议先收回这个预期。磁盘清理的安全原则永远是宁可少删不要多删。2. 适用场景与使用边界AIDiskCleaner 更适合下面这几类人Windows 用户C 盘不够用想知道空间到底被谁占了。开发同学机器上有大量npm cache、pip cache、Docker overlay、Gradle、Maven 缓存需要定期清。运维/测试同学经常要处理多台 Windows 测试机的磁盘占用需要找一款能批量跑目录分析或写进批处理脚本的工具。对国产全家桶杀毒软件不放心想用开源工具做本机清理的用户。不适合哪些场景不适合当作“数据恢复辅助工具”。只要是删缓存就存在个别软件重新生成配置的可能如果你正在用某个软件且缓存里有未同步内容先备份再清理。不适合代替专业的分区管理工具。磁盘清理工具管的是文件层不是把分区空间合并、压缩、搬家。不适合在没有管理员权限的受限企业电脑上硬装很多 Windows 缓存目录删除需要Administrator权益。版权、隐私、安全这块要单独说清楚C 盘缓存里经常混有浏览器登录态、下载中的文件、未提交的开发临时文件。清理前不要只盯着“可释放空间大”就全勾选。如果公司在多台机器上批量部署请确保你有设备授权和合规的测试环境别拿公司生产虚拟机当实验场。开源工具理论上代码可审计但不代表可以闭眼信任你下载的那个 EXE。要从仓库 Release 页或源码自行构建不要从乱七八糟的下载站拿安装包。3. 环境准备与前置条件在拿 AIDiskCleaner 开始扫描之前先检查本地环境是否满足条件。这里给出一份通用准备清单不太依赖具体版本。3.1 操作系统与权限推荐操作系统Windows 10 1809 以上、Windows 11。账户权限建议使用管理员账户运行或者右键以管理员身份运行。原因是C:\Windows\Temp、C:\ProgramData、C:\Windows\SoftwareDistribution\Download里很多文件需要较高权限才能删除。关闭正在运行的大型软件微信、浏览器、IDE 如果正在写入缓存文件可能被占用清理时会失败。不影响扫描但影响删除成功率。3.2 从源码安装的依赖如果你是直接从 GitHub 拉源码自己构建而不是用 Release 里打包好的exe那需要确认依赖用途说明Git拉取仓库代码版本无所谓能用即可编译器/开发框架构建桌面程序取决于项目技术栈比如 .NET SDK、Python PyInstaller、Electron 等NuGet / npm / pip拉取第三方依赖需要联网国内网络建议先配置对应镜像源由于 AIDiskCleaner 的实际技术栈在没有源代码信息前不能写死稳妥统一的建议是优先下载 Release 页的免安装包不要一上来就自己编译。自己构建适合后续要改规则的人。3.3 磁盘空间与杀毒软件建议预留至少 2 GB 可用空间再跑扫描否则清理过程中临时文件写入可能失败。Windows Defender 或其他杀毒软件可能拦截清理工具对C:\Windows\Temp、C:\ProgramData等敏感目录的访问。扫不出来时先看杀毒白名单而不是直接禁用杀毒软件。3.4 目录准备在自己的数据盘或桌面建一个工作目录用于保存扫描清单、备份缓存路径列表和多份清理日志。比如# 建立工作目录后续日志和扫描结果都放到这里 mkdir D:\DiskCleanupWorkshop -Force mkdir D:\DiskCleanupWorkshop\Logs mkdir D:\DiskCleanupWorkshop\Snapshots mkdir D:\DiskCleanupWorkshop\Whitelist4. 获取 AIDiskCleaner 与启动方式去 GitHub 搜索项目名AIDiskCleaner进入仓库后打开Releases页面。根据自己系统位数选择一个打包好的压缩包一般是AIDiskCleaner-win-x64.zip。如果你希望从源码运行使用 Git 克隆。4.1 源码克隆示例# 将项目克隆到本地仓库地址请以实际为准 git clone https://github.com/AIDiskCleaner/AIDiskCleaner.git cd AIDiskCleaner注意这个仓库地址是演示结构具体以你搜索到的真实地址为准。克隆完成后项目根目录一般有README.md里面会写清楚技术栈和执行命令。4.2 直接双击运行便携版针对 Windows 图形界面工具的通用启动逻辑如下# 解压进入目录 Expand-Archive -Path .\AIDiskCleaner-win-x64.zip -DestinationPath .\AIDiskCleaner cd .\AIDiskCleaner # 先看目录里有哪些可执行文件 dir如果目录下有AIDiskCleaner.exe直接右键以管理员身份运行。启动后首屏大概会看到扫描按钮、目标盘选择默认应该是 C 盘、白名单区域和日志输出区。不同版本 UI 会有差异但核心逻辑基本一致点击“开始分析”后工具开始遍历 C 盘缓存目录。如果 Release 包只提供了命令行程序或者说你想要一个无需界面也能执行扫描的版本那可以走一个通用流程# 假设工具提供 cli 入口真实命令以自己下载版为准 AIDiskCleaner.exe --scan --drive C如果命令不存在工具会直接输出错误提示。这时候改用 GUI 模式跑扫描。4.3 启动后端口与进程说明磁盘清理工具不通网络端口所以不存在“端口冲突”问题。确认它正常运行的方式是看 UI 窗口是否弹出以及扫描时 CPU/磁盘利用率是否变化。如果在受限环境里无法打开 GUI就用 PowerShell 进程确认Get-Process | Where-Object { $_.ProcessName -like *AIDiskCleaner* }有输出就代表进程已经启动。5. 使用 AIDiskCleaner 扫描 C 盘缓存并清理这里用一套通用的“扫描-分析-确认-清理”四步流程来讲。5.1 第一步选择扫描范围打开工具后默认会选择 C 盘。如果只想扫描缓存不要全盘扫避免扫描时间拖到十几分钟。缓存目录通常存在这些位置缓存类型常见路径是否可以安全清理Windows 临时文件C:\Windows\Temp通常可清删除失败会跳过被占用文件用户临时文件C:\Users\用户名\AppData\Local\Temp通常可清Windows 更新缓存C:\Windows\SoftwareDistribution\Download已完成的更新文件可清不要手动删整个文件夹系统缩略图/资源缓存C:\Users\用户名\AppData\Local\Microsoft\Windows\Explorer可清会自动重建DirectX 着色器缓存C:\Users\用户名\AppData\Local\D3DSCache可清游戏会重新生成浏览器缓存%LOCALAPPDATA%\Google\Chrome\User Data\Default\Cache可清会丢失部分网站加载缓存npm/pip/pnpm 等开发缓存%LOCALAPPDATA%\npm-cache、%LOCALAPPDATA%\pip\cache可清只是下次下载慢微信/QQ 聊天文件缓存%USERPROFILE%\Documents\WeChat Files等需手动确认不建议全删缩略图缓存C:\Users\用户名\AppData\Local\Microsoft\Windows\Explorer可清工具扫描时会对上述目录归类。项目标题里的“AI 智能分析”在实操中体现为它会比普通全盘扫描更精细地分辨文件是“纯缓存”还是“可能包含用户未保存内容”。合理预期是工具会展示分类结果而不是直接给你一个全选删除按钮。5.2 第二步查看空间报告与风险等级扫描结束后界面上一般会显示各分类的大小。比如 Windows 临时文件 3.2 GB浏览器缓存 800 MB更新缓存 1.5 GB。在这时候不要急着点清理先做三件事查看每个大类下面有多少文件、最新文件修改时间。寻找有没有“至少 3 天前修改”这种条件判断有的话优先勾选旧文件。留意有没有“已排除”的文件夹。好的清理工具会有白名单机制避免误删正在使用的文件。5.3 第三步勾选清理项并执行只勾选这些相对安全的大类Windows 临时文件用户临时文件更新缓存注意先检查系统能否正常检查更新D3DSCache 着色器缓存浏览器缓存缩略图缓存执行清理后如果看到类似无法删除 xxx因为文件正在被其他进程使用的提示这是正常现象说明对应文件被系统或正在运行的软件占用不需要强行处理。5.4 第四步验证清理效果清理完成后回到资源管理器查看 C 盘剩余空间。如果释放了空间说明清理有效。也可以直接在 PowerShell 里对比清理前后的 Trash/Temp 目录大小$before (Get-ChildItem -Path $env:TEMP -Recurse -Force -ErrorAction SilentlyContinue | Measure-Object -Property Length -Sum).Sum Write-Host Temp 清理前: $([math]::Round($before / 1GB, 2)) GB执行清理后再跑一遍同样的脚本就能看到差值。5.5 典型批量测试开发机缓存清理假设机器上有 Node.js 和 Python 的缓存工具如果支持自定义目录清单可以加入这些路径软件缓存位置备注npmC:\Users\用户名\AppData\Local\npm-cache执行npm cache verify后删除更安全pnpmC:\Users\用户名\AppData\Local\pnpm-cache同上pipC:\Users\用户名\AppData\Local\pip\cache删除后下次重新下载包GradleC:\Users\用户名\.gradle\caches清理后下次构建会重新拉依赖MavenC:\Users\用户名\.m2\repository谨慎处理本地私有构件可能在里面Docker DesktopC:\Users\用户名\AppData\Local\Docker\wsl属于虚拟磁盘不建议直接删用 Docker 命令清理如果你用 AIDiskCleaner 手动清理这些路径脚本执行完成后最好回来看一眼 IDE 或终端是否能正常拉起项目。如果项目报错“缺依赖”说明你删的不只是缓存可能是某些线上获取不到的私有包。6. 命令行批处理与定时清理任务图形界面工具适合单机手动扫描。但如果你要管多台机器或者希望每个周末自动清一次 C 盘那就需要把它做成一个可重复执行的批处理任务。再次提醒具体命令行参数要看 AIDiskCleaner 是否提供 CLI。如果没有官方 CLI可以使用 PowerShell 调用 GUI 工具的方式也可以自己定义一个“目录白名单清理脚本”作为补充方案。6.1 手动定义一个缓存目录清单先在项目工作目录创建一个配置文件D:\DiskCleanupWorkshop\Whitelist\cache-dirs.json。里面列出允许被清理的根目录比如{ scan_dirs: [ C:\\Windows\\Temp, C:\\Users\\Public\\Documents, C:\\Users\\你的用户名\\AppData\\Local\\Temp, C:\\Users\\你的用户名\\AppData\\Local\\Microsoft\\Windows\\Explorer, C:\\Users\\你的用户名\\AppData\\Local\\D3DSCache, C:\\Users\\你的用户名\\AppData\\Local\\Google\\Chrome\\User Data\\Default\\Cache ], skip_extensions: [.db, .lock, .log], max_file_age_days: 2, dry_run: true }那这份配置的解读是scan_dirs表示工具会扫这些目录。skip_extensions里的扩展名即使扫描到了也不删除。max_file_age_days为 2代表只删除 2 天前生成的缓存文件。dry_run为true时只输出会删除哪些文件不真删。这个思路在 AIDiskCleaner 的界面里通常会有对应设置项白名单目录、排除扩展名、删除阈值、试运行模式。如果你的版本有这些逻辑按 UI 设置即可如果没有可以用下面这种通用的 PowerShell 批处理来实现近似效果。6.2 一个通用缓存清理脚本模板# cleanup-cache.ps1 # 通用模板路径需要按本机实际用户名调整 $ErrorActionPreference Continue function Remove-CacheFiles { param( [string]$TargetDir, [int]$OlderThanDays 2 ) if (-not (Test-Path $TargetDir)) { Write-Host [跳过] 目录不存在: $TargetDir return } $timeLimit (Get-Date).AddDays(-$OlderThanDays) $files Get-ChildItem -Path $TargetDir -Recurse -File -ErrorAction SilentlyContinue | Where-Object { $_.LastWriteTime -lt $timeLimit } $totalBytes ($files | Measure-Object -Property Length -Sum).Sum Write-Host [信息] $TargetDir 可清理 ${totalBytes} 字节 ($([math]::Round($totalBytes / 1MB, 2)) MB) foreach ($file in $files) { try { Remove-Item -Path $file.FullName -Force -ErrorAction Stop } catch { Write-Warning 删除失败: $($file.FullName) $($_.Exception.Message) } } } $cacheDirs ( $env:TEMP, $env:WINDIR\Temp, $env:LOCALAPPDATA\Microsoft\Windows\Explorer, $env:LOCALAPPDATA\D3DSCache ) foreach ($dir in $cacheDirs) { Remove-CacheFiles -TargetDir $dir -OlderThanDays 2 } Write-Host 清理脚本执行结束看看回收站或备份目录是否已经清空。在 PowerShell 5.1 下运行powershell -ExecutionPolicy Bypass -File D:\DiskCleanupWorkshop\cleanup-cache.ps1这套脚本的价值不是替代 AIDiskCleaner而是让你理解“删除前先做条件判断”的工程思路也方便你在工具之外的边缘目录做补充清理。6.3 注册 Windows 计划任务如果你希望每周自动执行一次清理不需要软件本身具备定时功能直接用 Windows 自带任务计划程序就能做到$action New-ScheduledTaskAction -Execute powershell.exe -Argument -ExecutionPolicy Bypass -File D:\DiskCleanupWorkshop\cleanup-cache.ps1 $trigger New-ScheduledTaskTrigger -Weekly -DaysOfWeek Sunday -At 3am Register-ScheduledTask -TaskName WeeklyCacheCleanup -Action $action -Trigger $trigger -RunLevel Highest -Force注册完成后每周日凌晨 3 点会自动执行一次缓存清理。它不会打开 UI 窗口只在日志里留下输出。7. 资源占用与性能观察AIDiskCleaner 这类磁盘清理工具不会碰 GPU也不需要大显存。真正值得关注的是 CPU、磁盘 IO、内存占用和运行时长。7.1 扫描阶段的资源表现扫描器的性能瓶颈基本在磁盘 IO不在 CPU。C 盘是机械硬盘时全盘扫描可能需要十几分钟C 盘是 NVMe SSD 时通常几分钟之内能完成主要缓存目录遍历。扫描过程中可能会出现短暂的高磁盘占用其他软件可能感觉“卡了一下”。如果你在用着大型 IDE 或游戏建议先让扫描在后台跑完再进行删除。7.2 清理阶段的资源与删除速度删除大量小文件时即使总大小只有几 GB也可能耗时比较久因为每个文件的删除操作都有额外开销。删除 10 万个小文件的速度远慢于删除一个 10 GB 大文件。所以看到显示“正在删除, 剩余 3 万个文件”时不要硬关程序。强退可能导致部分文件处于半删除状态。7.3 如何观察是否存在异常占用清理过程中如果发现 CPU 占用冲到 100%先看是不是 Windows Defender 正在实时扫描删除动作。一般不影响最终效果最多就是慢一点。如果工具或者脚本在清理后内存占用没有降下来建议重启资源管理器Stop-Process -Name explorer -Force Start-Process explorer这个操作不会影响系统稳定只是刷新桌面和资源管理器状态。7.4 降低扫描干扰的实践扫描前关闭浏览器、微信、VS Code 等高频读写程序。在工具配置中排除.log文件和最近 24 小时内修改的文件。先使用试运行/预览模式确认清单量级。清理完成后重启一次电脑让系统重建必要的临时目录。8. 常见问题与排查方法问题现象可能原因排查方式解决方案双击工具没反应权限不足或杀毒软件拦截看 Windows 事件日志和 Defender 隔离记录右键以管理员身份运行把程序目录加入安全软件白名单扫描结果空白没有读取目录权限尝试扫描其他用户临时目录或使用 PowerShell 手动访问用管理员权限重启检查目录是否存在清理时提示“文件被占用”软件进程仍在写入缓存查看占用进程关闭对应软件后重试跳过正在使用的文件C 盘清理后空间又自动变小系统或软件后台自动生成新的缓存查看系统更新、浏览器预取等减少开机自启清理完后多做几次观察运行提示缺少 .NET Runtime系统组件版本过低检查 Windows 版本安装对应的 .NET 桌面运行时版本以项目文档要求为准杀毒软件报毒误报或下载源被修改对比文件哈希值建议从 GitHub Release 官方下载校验哈希一致后再运行批量清理后开发环境报错删除目录里包含项目依赖检查 npm/pip 目录重新安装依赖下次通过白名单排除这些目录删除后个别文件恢复不了缓存里存着未同步内容检查误删内容清理前定期备份不要全盘无差别清理清理脚本无法删除长路径文件Windows 路径长度超过系统限制通过工具查看具体路径启用长路径支持或使用工具的强力删除模式清理后系统更新失败删除了 SoftwareDistribution 里的必要文件执行wuauclt.exe /detectnow用系统自带“磁盘清理”而不是在更新过程中手动删除该目录这里重点说一下第一条如果你从第三方下载站拿到一个来路不明的 EXE双击后系统没有任何反应或者杀毒软件立刻弹出警告最稳妥的处理方式是直接删除该文件回仓库 Release 页重新下载。开源项目被恶意打包的情况并不少见但凡不是从开发者仓库直接拿到的文件都要留个心眼。9. 最佳实践与使用建议把 AIDiskCleaner 从“偶尔手动打开点一下”变成“可靠的磁盘巡检工具”靠的是下面几个习惯。9.1 先小范围试运行再大规模清理第一次使用工具时不要直接勾选全部历史缓存。先只清理用户临时目录观察软件行为、启动速度、运行日志是否正常。如果三天内没有出现异常再逐步把浏览器缓存、更新缓存加入清理范围。9.2 用快照对比空间变化清理之前记录 C 盘可用空间清理之后马上再记录一次。这个数据是判断工具效果最可靠的指标。可以写成一句命令Get-PSDrive C | Select-Object Used,Free把Free的值记到日志里几周后回看就能知道缓存规律。9.3 目录分区管理把这三类文件分开模型的模型 / 项目代码C 盘之外。下载安装包单独目录。系统生成的缓存不要迁移定期清理。AIDiskCleaner 适合管理“临时性、可再生”的数据不适合用来“搬家”。9.4 批量自动化要保留日志如果你用任务计划程序批量清理多台机器每条清理任务都要输出日志。建议在 PowerShell 脚本里加一行Start-Transcript -Path D:\DiskCleanupWorkshop\Logs\cleanup-$(Get-Date -Format yyyyMMdd-HHmmss).log清理任务结束前执行Stop-Transcript。这样出了问题至少能看到哪一步失败。9.5 合规与授权提醒无论是个人电脑还是公司配发的设备都要注意不删除非缓存目录中的个人文件原件。不勾选自己不了解的目录。不要通过清理工具去动系统恢复分区、EFI 分区。批量部署给他人机器前先拿到授权并展开清理演练。涉及聊天记录、文档预览缓存时除非已备份否则不要为了“挤出空间”而强行删除。9.6 定期做不要等飘红再动手缓存清理最忌讳的是“等 C 盘满了才想起来”。把任务计划程序的每周执行时间固定下来每次清理时间控制在十几分钟长期来看能避免很多“空间突然告急”的问题。如果看到 C 盘空间占用稳定在一个范围不需要反复折腾那说明这套清理策略是有效的。10. 总结与下一步AIDiskCleaner 给到的价值不是一个“清理按钮”而是把 C 盘缓存拆开、分类、给出可操作建议。它降低的是手动寻找缓存目录和判断可删不可删的成本。对于普通用户它比手动删Temp更直观对于开发者它的批量目录逻辑和开源属性意味着你能根据自己的软件栈修改清理规则。这篇文章里多次提到的一点值得重复磁盘清理工具做得再“智能”也不具备判断你某个文件是否需要备份的能力。先把你的文档、项目、聊天记录、浏览器书签放到可靠的位置再放心让工具去处理各种临时缓存。下一步你可以做的事很具体下载 AIDiskCleaner 或用你信任的同类开源工具第一次运行只扫描不清理先看分析结果。把上面那套 PowerShell 缓存目录清单改成适合你机器情况的版本跑一次试运行。设置一周一次的定时清理任务C 盘剩余空间记录到日志一周后对比实际效果。如果这次跑完发现 C 盘空间还是紧张重点排查对象大概率不是垃圾缓存而是虚拟机磁盘、Docker 镜像、休眠文件和大型项目文件。这几个方向都不会交给清理工具解决需要另外规划目录迁移方案。