
相信不少人都遇到过这个情况C盘亮红灯右键打开磁盘清理扫描完一看临时文件那一栏占了几个GB。点下确定等了好几分钟再看磁盘空间一点没变。甚至有些文件直接提示操作无法完成因为文件正在使用中或者你需要权限才能执行此操作。我见过最夸张的一台电脑磁盘清理连续跑了三轮临时文件还是显示同样的大小机器主人就差把电脑砸了。这篇文章就是把win10临时文件删不掉这件事掰开揉碎讲清楚。我会把常见的几种删不掉原因拆开分析给出每一步可以实际执行的命令和操作路径。不管你是C盘空间告急的普通用户还是经常帮别人维护电脑、想少走弯路的从业者这篇文章都值得收着备查。1. 先搞清楚临时文件到底包了哪些东西很多人把盘符一右键点磁盘清理看到临时文件三个字就直接勾选然后抱怨删不掉。问题在于磁盘清理工具里的临时文件是一个聚合分类里面藏着完全不同的文件每类的产生原因和删除逻辑都不一样。1.1 磁盘清理窗口里的主要分类在Windows 10里打开磁盘清理工具后你会看到一长串项目列表。我挑几个真正占空间的分类说一下分类实际包含内容删除后会不会重新生成Windows更新清理系统更新下载的安装包、旧组件、补丁备份有新更新后会继续产生可反复清理传递优化文件P2P方式下载Windows更新时留下的片段如果开着“允许从其他电脑下载”会重新生成缩略图图片、视频文件夹的预览缓存打开大文件夹后会重新生成回收站你删掉但还没清空的文件删除新文件后自然积累临时文件各类软件和系统运行时产生的临时数据使用软件时持续生成属于正常现象设备驱动程序包历史驱动版本备份某些电脑能清理好几个GB安装新驱动时可能会再保留一份系统错误报告崩溃日志、内存转储文件正常运行中较少产生以前的Windows安装Windows.old旧系统备份不会自动重新生成升级确认无误后可放心删这个表格看着简单其实是排查问题的第一步。很多用户以为临时文件就是一个文件实际上你面对的是好几种来源不同来源的处理方式差异很大。你如果想判断删了还会不会长回来对照这个表就能看出来缩略图和临时文件是必然会再出现的Windows更新相关的会随新更新再来只有Windows.old这类是一次性的。1.2 临时文件为什么会疯狂膨胀临时文件夹%TEMP%和C:\Windows\Temp的增长速度往往和你装了哪些软件直接相关。浏览器缓存、聊天软件的文件收发缓存、视频会议软件录屏缓存、压缩软件解压中间文件这些全都往临时目录里写。一些软件卸载后又把一堆临时文件留在原目录系统并不知道这些文件已经没用不会主动帮你清。Windows更新也是大头。每次功能更新或补丁更新系统都会先下载完整安装包放到C:\Windows\SoftwareDistribution\Download目录等安装完成后并不是全部删除。再加上WinSxS组件库里的旧版本系统文件这些组件以硬链接方式存在磁盘清理工具计算时会把它算进去导致更新清理那一项动辄几个GB。另外一个很多人没注意的系统错误报告。程序崩溃时Windows会把内存转储和错误日志写到C:\ProgramData\Microsoft\Windows\WER直到这个文件夹占用超过系统阈值内存你几乎感知不到它的存在。一个天天崩溃的应用一年攒出十几GB错误报告都不稀奇。2. 删不掉的四种真实原因先诊断再动手临时文件删不掉不是文件的错是操作方式没对症。我把常见的删不掉场景归结为四种原因你对照自己的情况先做个诊断再决定用哪种手段。2.1 文件正被进程占用这是最常见的情况。Windows对正在被进程打开的文件会加独占锁删除操作会被操作系统直接拒绝弹出的提示通常是操作无法完成因为文件已在另一程序中打开。典型场景浏览器还在运行你想清理浏览器所在的临时目录直接报错后台还在下载Windows更新SoftwareDistribution文件夹就一直在被Windows Update服务写入刚从压缩包解压完文件解压程序还开着临时释放的文件就删不掉。解决办法不是硬删而是先找到占用它的进程结束进程后再删这部分我在第三章详细讲。2.2 权限不足你不是真的管得住系统目录Windows对系统目录有严格的权限控制。C:\Windows\Temp目录默认只有SYSTEM和TrustedInstaller有完全控制权你就算用的是管理员账户也要先取得所有权才能删除里面的文件。很多新手在这里卡住明明已经关掉了所有程序文件依然提示你需要权限才能执行此操作。这类文件不能用以管理员身份运行删除的方式强行删因为删除操作本身没有权限。正确处理方式是先用takeown和icacls两个命令拿走文件所有权、赋予当前管理员完全控制权限然后再执行删除第五章会给具体命令。2.3 磁盘清理工具的假删除有一部分情况不是你权限不够而是磁盘清理工具本身设计得不好用。它扫描时会把所有候选文件的大小都列出来但真正执行删除时遇到被占用的文件会跳过去然后重新扫描时那些文件依然还在看起来就像清理失败。另外磁盘清理工具有个反直觉的设定默认模式下很多大型项目根本不显示。比如Windows更新清理和设备驱动程序包这两个大项目你必须先点清理系统文件按钮重新扫描后才能看到。如果你只是打开磁盘清理直接清理永远只能看到那点表面项目真正的空间大户一个都碰不到。2.4 文件被服务持续写入删了还在长还有一种情况更迷惑——文件确实删了但没过多久又出现同名的文件大小还差不多。这通常意味着某个系统服务或后台应用一直在往临时目录写入数据。比如Windows Search索引服务会扫描并缓存文件信息安全软件实时防护会在解压和启动程序时不停生成扫描缓存Windows更新服务会在后台反复下载更新包。遇到这种情况单纯清理一次解决不了根本问题。建议先停掉对应的后台服务或者暂时退出第三方安全软件清完后过几分钟再看如果文件又回来了再用资源监视器定位是哪个进程在写。3. 正式清理前先做这一步定位并释放被占用的临时文件很多人一上来就删文件删不动就把全线命令都上一轮结果还是报错。我的建议是先花两分钟定位占用进程再执行清理这样成功率最高也最省事。3.1 直接关闭可能占用临时文件的常见程序能用关程序解决的问题就不要用复杂工具。清理前手动退出以下几类软件浏览器Chrome、Edge这类浏览器会持有很多临时文件句柄微信、钉钉、企业微信等桌面聊天软件聊天记录加载和图片缓存都在写Office文档Word、Excel打开文档时会在临时目录写副本视频剪辑、图片处理工具时间线预览和缓存文件超大下载工具没下完的任务会占着.part文件关闭后等一下让进程完全退出再重新尝试删除。很多用户是主界面关掉了但进程还在后台常驻这时可以用任务管理器确认一遍CtrlShiftEsc打开任务管理器看应用列表下面有没有残留进程有就右键结束任务。3.2 用资源监视器精确定位占用文件的进程有些文件不知道被谁占用关掉所有界面程序也还是删不掉这时候就要用系统自带的最强工具——资源监视器。打开方式WinR输入resmon回车或者从任务管理器性能页签左下角点打开资源监视器。操作路径是这样的切到CPU页签往下拉找到关联的句柄区域在搜索框里输入你删不掉的文件名比如某文件叫abc.tmp就输入abc.tmp或者直接输入完整的文件夹路径。资源监视器会列出所有与该文件路径关联的进程你一眼就能看出是谁占着它。搜到之后右键对应进程选择结束进程然后再回来删除文件。这里有个经验如果占用的进程是系统关键进程比如svchost.exe、explorer.exe不要直接在资源监视器里强杀容易引发桌面崩溃或系统不稳定。先尝试重启资源管理器在任务管理器里右键重新启动explorer.exe如果还不行考虑用第五章的安全模式方案。注意结束进程前一定先保存自己正在编辑的文档。误杀软件进程最多是程序崩溃误杀系统进程麻烦就大了。3.3 暂停Windows Search和第三方安全软件Windows Search服务服务名WSearch是出了名的临时文件钉子户它会持续扫描文件系统并生成索引缓存。清理大范围临时文件之前可以暂时停掉它清完再启动。管理员身份打开命令行执行net stop wsearch清完之后net start wsearch如果你装了第三方安全软件如火绒、360等且它的实时防护一直提示正在使用或后台扫描建议先右键退出清理结束后再打开。注意这一步只建议在你自己电脑上操作帮别人维护时先和对方确认安全软件的退出方式。做完这三步大多数普通级别的临时文件占用问题就已经解决了。剩下那些连系统进程都占用着的顽固文件看第五章节的强制删除流程。4. 磁盘清理的进阶用法从cleanmgr到DISM很多人只知道双击磁盘清理其实cleanmgr.exe有一堆命令行参数配合系统自带的DISM组件清理能比默认界面多清出好几GB空间。4.1 cleanmgr命令行参数基础用法不说了最常见的两个高级参数cleanmgr /lowdisk这个参数以低磁盘空间模式运行会跳过一些不必要的耗时扫描直接打开清理窗口适合C盘已经濒危时的紧急操作。cleanmgr /sageset:nn代表数字编号比如 /sageset:1执行后会弹出一个窗口里面列出了全部清理项目包括默认模式下不显示的Windows更新清理设备驱动程序包以前的Windows安装等。你勾选好想要的项点确定这个方案就保存在注册表里了。之后要按这个方案执行运行cleanmgr /sagerun:n这个组合非常适合批量维护。你在一台机器上配置好方案后面任何一台机器都可以用脚本调用同一套参数来清理不需要每台都手动勾选。我在帮人维护时常用 /sageset:1 配置好一个方案然后配合计划任务定期执行基本能保证系统盘不失控。4.2 用DISM清理WinSxS组件库如果说磁盘清理解决的是看得见的临时文件DISM解决的就是看不见的组件备份。WinSxS目录C:\Windows\WinSxS存放了系统所有组件的所有版本Windows更新不会直接覆盖旧文件而是旧文件保留、新文件添加这样你可以随时卸载更新、回退版本。代价是磁盘空间持续膨胀。DISM组件清理的原理是标记出那些已经被新版本取代、且已经超过保留期限的旧组件从组件库中移除。具体两步走dism /online /cleanup-image /analyzecomponentstore这一步是分析当前组件库有多少可以清理的空间会显示组件存储实际使用空间和可以清理的空间。先看它如果可清理空间不大没必要跑下面的完整清理。建议清理dism /online /cleanup-image /startcomponentcleanup这个命令的耗时根据组件数量从几分钟到半小时不等期间命令行看起来像卡住实际是在工作不要中途关窗口。跑完之后再用磁盘清理的Windows更新清理看能找到一些之前删不动的项目已经消失。4.3 手工清理Windows更新下载缓存SoftwareDistribution\Download目录是Windows更新的下载暂存区经常积压几个GB的安装包。手动清理它的思路是先停掉更新服务防止服务边写边删导致文件占用。管理员身份打开命令行net stop wuauserv net stop bits del /f /s /q C:\Windows\SoftwareDistribution\Download\*.* for /d %i in (C:\Windows\SoftwareDistribution\Download\*) do rd /s /q %i net start bits net start wuauserv这个操作比在磁盘清理里勾选Windows更新清理更直接。跑完后Windows Update下次检查更新时会重新下载需要的文件不影响系统正常更新。如果你平时用Windows Update频率很高这个目录清理一次能立竿见影。4.4 删除卷影副本和系统还原点卷影副本Shadow Copy是系统还原和文件历史功能的基础它们也是隐藏的空间杀手。同一个盘上还原点越多空间占用越大。查看当前卷影副本vssadmin list shadows确认不需要旧还原点的情况下删除所有卷影副本vssadmin delete shadows /all /quiet如果还想留最新的还原点可以用vssadmin delete shadows /forC: /oldest删除后会清出一大块空间。这块空间不是临时文件但经常被用户误以为是磁盘清理清不掉的临时文件。注意卷影副本是系统还原功能的根基删完无法恢复旧版本文件操作前自己权衡。5. 顽固临时文件的强制删除流程走到这一步的基本都是被系统权限或进程占用搞到头大的用户。下面这套流程是我实际处理顽固文件时的完整链路从软到硬一层层递进。5.1 用takeown和icacls取得文件所有权权限不足的文件先拿权限再删除。管理员身份打开命令行执行takeown /f 完整路径 /r /d y icacls 完整路径 /grant administrators:F /t /ctakeown的作用是把文件或目录的所有权从SYSTEM或TrustedInstaller转移到当前管理员icacls则是给当前管理员授予完全控制权限。这两个命令执行完后再执行del或rd就不会再碰到需要权限的提示。这里有几个容易踩的坑路径有空格时一定要用英文双引号包起来/r和/t参数表示递归处理子目录和子文件自己临时用也要带不然只会处理顶层文件icacls执行时如果卡在某一个文件上可以再加 /q 安静模式减少输出。命令执行过程中如果提示拒绝访问说明还是有进程在占用直接跳到下面的安全模式。5.2 安全模式关掉第三方干扰后再清理安全模式下Windows只加载最基础的驱动和系统服务第三方软件、自启动程序、大部分后台服务都不会运行。这意味着那些被第三方进程占用的临时文件在安全模式下默认是无人认领的状态。进入安全模式的方法有几种我推荐这条最直观WinR输入msconfig回车切到引导页签勾选安全引导选最小或网络取决于你需不需要联网点确定重启清理完临时文件后再按同样路径取消勾选安全引导重启回正常模式注意在安全模式下做完清理一定要记得取消安全引导选项否则电脑每次都会以安全模式启动很多人以为系统坏了其实就是这一步忘了改回去。进入安全模式后管理员运行命令行把之前跑的清理命令再执行一遍。你会发现之前删不了的文件现在删起来非常顺畅。清理完成后重启回正常模式即可。5.3 从PE环境删除文件最后的物理级方案如果你发现连安全模式下都还有文件删不掉比如被系统内核锁定的驱动文件那就只能用Windows PE环境来解决了。PE环境下Windows主系统没有运行不存在任何文件占用删除操作是原子级别的几乎没有删不掉的文件。操作步骤准备一个Windows 10安装U盘或者WinPE启动盘从U盘启动进入安装界面按ShiftF10打开命令行用dir命令找到系统盘符。注意PE下的盘符可能和Windows内不同C盘不一定是系统盘我习惯用dir C:\Windows\System32确认一下能看到system32说明找对了执行删除命令比如del /f /s /q C:\Windows\Temp\*.* for /d %i in (C:\Windows\Temp\*) do rd /s /q %i如果你对某个文件的具体路径很明确也可以直接del那个文件。PE环境下完全绕开了文件占用问题删除后立即生效。这个方案不建议新手贸然操作毕竟在命令行里按错盘符删文件后果不可逆。操作前务必多看一眼盘符路径。5.4 第三方强制删除工具能用但要用对边界很多人在网上搜索会找到一大堆文件解锁工具比如Unlocker、LockHunter、IObit Unlocker等。这些工具的原理基本一致检测并释放文件句柄或者劫持删除API绕过占用。听起来很强大但实际使用要慎重。我的经验是如果前几步已经解决了权限和占用问题第三方工具根本用不上。只有在极少数情况下——比如病毒或恶意软件把文件嵌入到系统进程里你无法判断是哪个进程在占用时才需要借助第三方工具做最后的解锁删除。而且第三方工具本身有风险下载渠道不正规的话容易捆绑安装垃圾软件强行释放句柄可能导致正在使用该文件的程序崩溃严重时甚至影响系统稳定性。如果一定要用请从软件官网或可信的大型下载站下载不要轻信搜索页里那些花花绿绿的下载链接。用完就删不建议让这类工具长期驻留后台。6. 长效维护别再让临时文件失控删得了一时管不了一世。临时文件的本质是系统运行产生的副产品你没法让它消失只能控制它的增长速度。下面这些是我自己电脑和帮人维护时常用的长效方案难度从低到高。6.1 开启存储感知并配置自动清理Windows 10这个功能被很多人忽略了存储感知。打开方法设置 - 系统 - 存储 - 打开存储感知开关然后点配置存储感知或立即运行。在这里你可以设置临时文件清理频率每天/每周/每月回收站保留时间默认30天可以改为14天或7天下载文件夹清理策略默认从不可改为30天/60天我建议把临时文件清理频率设为每周回收站保留设为30天下载文件夹视个人习惯决定。这样系统会在后台定期清理不会积累到爆炸。这个功能依赖系统任务计划保持电脑每天有一定时间的开机时长即可。6.2 一个可以直接拿来用的清理脚本如果你想自己掌控清理时机和内容我给你一个我常用的bat脚本。复制保存为clean.bat右键以管理员身份运行即可。它会依次清理用户临时目录、系统临时目录、Windows更新缓存、错误报告和回收站。echo off chcp 65001 nul title 系统临时文件清理 echo echo 系统临时文件清理脚本需以管理员身份运行 echo echo. :: 停止Windows更新服务便于清理更新缓存 echo [1/6] 停止Windows更新服务... net stop wuauserv nul 21 net stop bits nul 21 :: 清理当前用户临时文件夹 echo [2/6] 清理当前用户临时文件夹... del /f /s /q %TEMP%\*.* nul 21 for /d %%i in (%TEMP%\*) do rd /s /q %%i nul 21 :: 清理系统临时文件夹 echo [3/6] 清理系统临时文件夹... del /f /s /q C:\Windows\Temp\*.* nul 21 for /d %%i in (C:\Windows\Temp\*) do rd /s /q %%i nul 21 :: 清理Windows更新下载缓存 echo [4/6] 清理Windows更新下载缓存... del /f /s /q C:\Windows\SoftwareDistribution\Download\*.* nul 21 for /d %%i in (C:\Windows\SoftwareDistribution\Download\*) do rd /s /q %%i nul 21 :: 清理系统错误报告 echo [5/6] 清理系统错误报告... del /f /s /q C:\ProgramData\Microsoft\Windows\WER\*.* nul 21 for /d %%i in (C:\ProgramData\Microsoft\Windows\WER\*) do rd /s /q %%i nul 21 :: 清空回收站 echo [6/6] 清空回收站... rd /s /q C:\$Recycle.bin nul 21 :: 重新启动Windows更新服务 echo 重新启动Windows更新服务... net start bits nul 21 net start wuauserv nul 21 echo. echo 清理完成建议重启电脑后再观察一次磁盘空间。 pause脚本里每步都加了 nul 21意思是把正常输出和错误信息都屏蔽掉。这样做的好处是当成千上万个文件里有几个还在被占用、删除失败时脚本不会停下来而是继续处理后面的文件。删除完再启动服务保证Windows Update功能不受影响。运行完脚本后建议重启一遍电脑让系统重新初始化临时环境然后再看磁盘空间你会发现实际释放的空间比脚本执行时显示的要多。6.3 控制临时文件的源头增量清理是治标控制增量才是治本。三个实用操作把TEMP变量改到别的盘。右键此电脑 - 属性 - 高级系统设置 - 环境变量把系统变量和用户变量里的TEMP和TMP都改成其他盘比如D:\Temp先建好这个文件夹。之后所有软件的临时文件都会写到D盘不再占C盘空间。注意如果你用的是小容量SSD加大容量机械盘的组合把临时目录放到机械盘会拖慢部分软件启动速度需要考虑清楚。关闭P2P更新传输。设置 - 更新和安全 - 传递优化 - 关闭允许从其他电脑下载。这个功能会让你的电脑为其他电脑提供Windows更新片段同时也会存一堆传递优化文件在C盘。个人用户用不上就干脆关掉。升级完大版本后的Windows.old尽早处理。升级Win10后C盘根目录会有一个Windows.old文件夹占10~30GB。系统会保留30天供你回退30天后自动删除。如果确定不需要回退用磁盘清理 -清理系统文件- 勾选以前的Windows安装直接清掉能立刻腾出大量空间。6.4 用空间分析工具快速定位大文件最后推荐一个提高效率的思路平时不知道C盘哪里占空间多不要一个文件夹一个文件夹地翻用一个磁盘空间分析工具扫一遍几分钟就能定位到所有大文件夹。我用得比较多的是WizTree扫描速度快免费版功能足够。REPORT风格的工具还有TreeSize Free和SpaceSniffer按喜好选择即可。用这类工具看C盘时优先看这几个位置C:\Windows\WinSxS组件库不要手动删用DISM处理C:\Windows\SoftwareDistribution\Download更新缓存C:\Windows\Temp和C:\Users\你的用户名\AppData\Local\Temp临时文件C:\hiberfil.sys休眠文件不需要休眠就关掉C:\pagefile.sys虚拟内存可以移到其他盘但建议保持系统托管WinSxS这类系统组件目录在空间分析工具里显示很大但它的实际体积很多是硬链接重复计算要用DISM命令才能真正释放。看到它大不要慌张也不要手动去删里面的文件那样会导致系统组件损坏。最后说几点我自己的经验维护电脑这些年我发现真正让C盘迅速爆掉的往往不是用户日常可见的临时文件而是Windows更新组件库、更新下载缓存、系统还原点这些隐藏大户。所以我的例行维护流程很固定先跑一遍整理好的bat脚本清常见临时文件再用DISM清理组件库最后看一眼SoftwareDistribution目录还需要不需要处理。整套流程走完C盘基本能维持在健康水位。还有一个容易被忽略的细节很多人清完临时文件后发现磁盘清理工具重新扫描还是显示同样的体积就以为清理没效果。其实Windows的磁盘清理工具统计的是当前存在的全部可清理文件你清完一批系统运行一两天又产生一批它再次扫描时自然还是显示有很多。正确的验证方法是看C盘总可用空间的变化而不是盯着清理工具那个数字。打开此电脑看C盘条如果蓝色可用空间增加了说明清理是有效的。删不掉的文件路数就那几种思路清楚了工具和命令都是顺手的事。