
这类清理 C 盘的工具最值得先看的不是它能扫出多少垃圾而是能不能在普通 Windows 环境下稳定运行、不误删系统文件并且让你清楚知道每一步到底删了什么。很多人一看到 C 盘红了就急着找工具结果要么是清理不彻底要么是删了不该删的东西导致系统异常。我更建议把第一次清理拆成三步先看懂 C 盘空间被谁占了再用手动命令或脚本做针对性清理最后才是考虑要不要用第三方工具。下面按实际落地顺序拆一遍所有操作都会解释清楚为什么这么做、怎么判断是否成功、以及万一出问题怎么回退。1. 先搞清楚 C 盘空间到底被什么文件占用了直接上清理工具之前一定要先知道是哪些文件占用了空间。很多人一看到 C 盘红了就以为是“垃圾文件”太多实际上可能是 Windows 更新缓存、休眠文件、虚拟内存、或者某些软件把数据默认存到了 C 盘。1.1 用系统自带工具看空间分布Windows 自带的“存储感知”功能其实就能看得很清楚打开“设置” “系统” “存储”点击“C 盘”。系统会花几分钟扫描然后按文件类型分类显示占用空间大小。这个界面会显示“临时文件”“应用和游戏”“文档”“图片”等类别的大小。我一般会先看“临时文件”和“系统文件”这两项因为这里通常包含可安全清理的缓存和更新残留。为什么先看这里因为系统自带的分类最安全它不会把系统关键文件标记为“可清理”。第三方工具有时会误判但系统自己的扫描结果相对可靠。1.2 用 TreeSize Free 看具体文件夹大小如果觉得系统自带的分类不够细可以用 TreeSize Free免费版就够用看具体哪个文件夹最大下载 TreeSize Free解压后直接运行。选择 C 盘扫描它会按文件夹大小排序显示。常见的占用大户有C:\Windows\Temp系统临时文件可清理。C:\Users\[用户名]\AppData\Local\Temp用户临时文件可清理。C:\Windows\SoftwareDistribution\DownloadWindows 更新缓存更新成功后可清理。C:\hiberfil.sys休眠文件如果不用休眠功能可关闭。C:\pagefile.sys虚拟内存文件不建议直接删除但可移到其他盘。扫描后不要急着删先记住这些路径因为下一步我们要用更可控的方式清理。2. 用手动命令和脚本做基础清理理解了空间分布后我们可以用系统自带命令或简单脚本做第一轮清理。这样做的好处是每一步都可控而且能清楚知道删了什么。2.1 用磁盘清理工具清系统缓存Windows 自带的“磁盘清理”工具其实很强大但很多人只点了第一页的选项。其实它有个“清理系统文件”按钮能扫出更多空间右键 C 盘 “属性” “磁盘清理”。点击“清理系统文件”会多出“Windows 更新清理”“设备驱动程序包”等选项。勾选需要清理的项目下面会解释每个选项的含义点击确定。清理选项解读Windows 更新清理已安装更新的备份文件清理后无法卸载这些更新但通常不影响使用。临时文件系统临时文件可安全清理。回收站清空回收站。传递优化文件Windows 更新分发缓存可清理。设备驱动程序包旧驱动备份如果你最近没有回退驱动的需求可以清理。为什么不用第三方工具而先用系统自带因为系统自带的清理最安全它不会动到正在使用的文件或系统核心文件。第三方工具有时为了显示“清理效果好”会把一些缓存文件也算进去但那些文件可能正在被使用。2.2 用批处理脚本清理临时文件如果你经常需要清理可以写一个简单的批处理脚本一键清理多个临时文件夹echo off echo 开始清理临时文件... :: 清理系统临时文件 del /q /f /s %SystemRoot%\Temp\*.* :: 清理用户临时文件 del /q /f /s %TEMP%\*.* :: 清理浏览器缓存以 Chrome 为例 del /q /f /s %LOCALAPPDATA%\Google\Chrome\User Data\Default\Cache\*.* echo 清理完成。 pause把这个脚本保存为.bat文件右键“以管理员身份运行”。注意事项脚本中的路径都是系统变量兼容不同 Windows 版本。如果提示“文件正在使用”跳过即可不要强制删除。清理浏览器缓存会丢失登录状态但不会删书签和历史记录。2.3 处理休眠文件和虚拟内存如果 C 盘空间非常紧张可以考虑调整休眠文件和虚拟内存关闭休眠会删除 hiberfil.sys以管理员身份运行命令提示符输入powercfg -h off这个文件大小通常等于内存大小比如 16GB 内存就是 16GB。关闭后开机速度会稍慢但睡眠功能还能用。移动虚拟内存到其他盘右键“此电脑” “属性” “高级系统设置” “性能”设置 “高级” “更改”。取消“自动管理”选择 C 盘点“无分页文件” “设置”。选择其他盘如 D 盘点“系统管理的大小” “设置”确定后重启。移动虚拟内存的代价系统运行速度可能略有下降因为 C 盘通常是 SSD其他盘可能是 HDD。除非 C 盘真的没空间否则不建议动虚拟内存。3. 用 Python 写一个简单的清理工具如果你经常需要清理又不想每次手动点选可以用 Python 写一个带日志的清理工具。这样既能自动化又能记录删了哪些文件方便出问题时回溯。3.1 环境准备和依赖检查先确认 Python 环境Python 3.6 都可以python --version不需要安装额外库全部用 Python 标准库。3.2 核心代码安全删除临时文件下面是一个带确认提示和日志记录的清理脚本import os import shutil import tempfile from datetime import datetime # 配置要清理的路径根据实际检查结果调整 CLEAN_PATHS [ os.environ.get(TEMP, ), # 用户临时文件夹 os.path.join(os.environ.get(SystemRoot, ), Temp), # 系统临时文件夹 # 添加其他路径如浏览器缓存等 ] LOG_FILE clean_log.txt def safe_clean_path(path): 安全清理单个路径跳过正在使用的文件 if not os.path.exists(path): print(f路径不存在: {path}) return 0 total_freed 0 for root, dirs, files in os.walk(path): for file in files: file_path os.path.join(root, file) try: file_size os.path.getsize(file_path) os.remove(file_path) total_freed file_size log_action(f删除文件: {file_path} ({file_size} 字节)) except PermissionError: log_action(f跳过正在使用的文件: {file_path}) except Exception as e: log_action(f删除失败 {file_path}: {e}) return total_freed def log_action(message): 记录操作日志 timestamp datetime.now().strftime(%Y-%m-%d %H:%M:%S) log_entry f[{timestamp}] {message}\n print(log_entry, end) with open(LOG_FILE, a, encodingutf-8) as f: f.write(log_entry) def main(): print( C 盘清理工具 ) print(将要清理的路径:) for path in CLEAN_PATHS: if os.path.exists(path): print(f - {path}) confirm input(\n确认清理? (y/n): ) if confirm.lower() ! y: print(取消清理) return total_freed 0 for path in CLEAN_PATHS: if path: # 跳过空路径 print(f\n清理中: {path}) freed safe_clean_path(path) total_freed freed print(f此路径释放: {freed / 1024 / 1024:.2f} MB) print(f\n总计释放: {total_freed / 1024 / 1024:.2f} MB) print(f操作日志已保存到: {LOG_FILE}) if __name__ __main__: main()3.3 如何运行和验证将代码保存为clean_c_drive.py。右键“以管理员身份运行”否则可能没有权限删除系统临时文件。运行前会列出要清理的路径确认后再执行。查看生成的clean_log.txt确认没有误删重要文件。这个脚本的安全设计跳过正在使用的文件PermissionError。记录所有操作方便回溯。需要手动确认后才执行删除。只清理临时文件类路径不碰系统核心目录。3.4 扩展功能按文件类型和日期清理如果需要更精细的清理可以添加按文件类型和修改时间过滤def clean_by_extension_and_age(path, extensions, max_age_days): 按扩展名和文件年龄清理 from datetime import timedelta cutoff_time datetime.now() - timedelta(daysmax_age_days) for root, dirs, files in os.walk(path): for file in files: if any(file.lower().endswith(ext) for ext in extensions): file_path os.path.join(root, file) file_mtime datetime.fromtimestamp(os.path.getmtime(file_path)) if file_mtime cutoff_time: try: os.remove(file_path) log_action(f删除旧文件: {file_path} (修改于 {file_mtime})) except Exception as e: log_action(f删除失败 {file_path}: {e}) # 用法示例清理 30 天前的 .tmp 和 .log 文件 clean_by_extension_and_age( os.environ.get(TEMP, ), [.tmp, .log], max_age_days30 )4. 清理后的空间验证和常见问题排查清理工具跑完后不要只看工具显示的“释放了多少空间”要实际检查 C 盘剩余空间是否真的增加了。4.1 如何验证清理效果清理前记录空间右键 C 盘 “属性”记下“已用空间”和“可用空间”。清理后再次查看同样的方式查看空间变化。重启后再检查有些文件删除后需要重启才能完全释放空间。如果清理后空间没有明显变化可能是清理的文件本来就不大。有更大的文件占用了空间如虚拟内存、休眠文件。系统还原点或卷影复制占用了空间。4.2 清理后系统异常怎么办如果清理后出现软件无法启动或系统异常按这个顺序排查查看清理日志看具体删了哪些文件。检查软件配置有些软件在临时文件夹存放配置文件清理后需要重新配置。系统文件检查以管理员身份运行sfc /scannow检查系统文件完整性。重启系统很多临时文件相关的错误重启后能解决。重要不要轻易清理这些路径C:\Windows\System32系统核心文件清理会导致系统无法启动。C:\Program Files和C:\Program Files (x86)安装的软件应该用卸载程序移除。C:\Users\[用户名]\Documents用户文档手动整理而不是直接删除。4.3 什么时候该用第三方清理工具系统自带工具和简单脚本解决不了的情况软件卸载残留注册表、配置文件夹。重复文件查找。大文件扫描和分类。选择第三方工具时注意优先选有数字签名的知名工具。第一次使用前创建系统还原点。不要同时运行多个清理工具。5. 长期维护防止 C 盘再次变红清理只是临时解决方案更重要的是防止空间再次不足。5.1 改变软件安装习惯安装路径改到其他盘安装软件时选择 D 盘或其他非系统盘。便携版软件使用绿色版或便携版软件数据不写系统盘。云存储同步文件夹如 OneDrive、Dropbox 的同步文件夹放到其他盘。5.2 定期维护任务开启存储感知设置 系统 存储 开启“存储感知”让系统自动清理临时文件。定期清理浏览器缓存浏览器设置中清理缓存或使用隐私模式。检查软件数据存储如微信、QQ 的聊天记录文件是否在 C 盘及时迁移。5.3 监控工具推荐WizTree快速扫描磁盘空间占用比 TreeSize 更快。SpaceSniffer图形化显示文件夹大小直观看到占用大户。Windows 自带的“存储感知”设置自动清理计划。我个人更建议先把系统自带的磁盘清理和存储感知用熟再考虑写自动化脚本。第三方工具可以作为补充但不要过度依赖。真正影响 C 盘空间的往往不是临时文件而是软件安装习惯和数据存储位置。清理工具能解决一时的问题但良好的使用习惯才是根本解决方案。