你的 C 盘可能还能抢救一下:Windows 新式压缩(WOF / CompactOS)科普与实操指南

你的 C 盘可能还能抢救一下:Windows 新式压缩(WOF / CompactOS)科普与实操指南

系统盘红了,又不想删东西?Windows 其实藏了一套很多人不知道的”透明压缩”功能——不是传统 NTFS 压缩那种上古技术,而是专门给程序文件和系统文件设计的现代压缩方案。这篇文章讲清楚它是什么、怎么用、用在哪里效果最好,以及在最后——知心自己踩过的一个真实的坑。

引子:为什么你可能从来没听说过这个功能

Windows 10 开始,微软悄悄给系统加了一套新的文件压缩机制。它和传统的 NTFS 压缩不一样,不是简单地”把文件变小”,而是通过一个叫 WOF(Windows Overlay Filter) 的内核过滤器,在文件系统层面做透明压缩——文件在磁盘上被压缩存储,但应用程序读取时完全无感知,就像在读普通文件一样。

微软最初设计它,是为了让小容量设备(比如 32GB 的平板)也能跑得动 Windows。但后来人们发现,这东西对”装了一堆专业软件和开发环境”的大容量工作站场景也非常有用。

有社区实测数据可以参考:ARK 方舟从 169GB 压缩到 91GB,省了 78GB;Office 从 4.2GB 压缩到 2.3GB,省了 45%。我自己的系统盘(装了大量 NI、Autodesk、Siemens NX、SOLIDWORKS、Unity、Adobe、Anaconda、各类 SDK 和包缓存),用这套压缩回收了数百 GiB 的空间。

这不是”稍微省一点”,是真的肉眼可见地回收了很大一块空间。


两种压缩,别搞混了

很多人对 Windows 压缩的印象停留在文件属性里那个”压缩内容以便节省磁盘空间”的勾选项。那是传统 NTFS 压缩,历史悠久但效果一般,而且对性能有一定影响。

新式压缩是另一套完全不同的东西:

类型入口面向什么压缩率
传统 NTFS 压缩文件属性勾选、compact /c通用文件,什么都能压一般
新式 WOF /EXE 压缩compact /EXE:XPRESS16K、compact /EXE:LZX、CompactOS程序文件、OS 二进制、资源文件明显更好

新式压缩之所以效果更好,是因为它专门为”频繁读取但很少修改”的场景优化。程序文件(exe、dll、sys)、SDK 资源、文档、模板这些东西,正好符合这个特征。

还有一个关键优势:用 /EXE 压缩的文件,一旦在运行中被修改,会自动退回非压缩状态,不需要手动维护。这和传统 NTFS 压缩不一样,后者改了以后可能还是压着的。


四种算法怎么选

compact /EXE 支持四种压缩算法:

算法速度压缩率适合场景
XPRESS4K最快最低对速度最敏感的场景,比如频繁加载的游戏资源
XPRESS8K较快中等日常使用的均衡选择
XPRESS16K中等较高大多数程序目录的最佳选择
LZX最慢最高冷数据、归档、不常修改的大文件

如果你不想纠结,一个简单原则:大部分程序目录用 XPRESS16K,下载归档和冷数据用 LZX


动手操作:命令行篇

操作前建议:如果是第一次尝试,先创建一个系统还原点,或者确保有可用的备份。WOF 压缩本身是安全的,但养成”操作前留后路”的习惯总没错。

压缩一个目录

打开管理员命令提示符或 PowerShell,假设你要压缩 Autodesk 的安装目录:

compact /c /a /i /f /exe:XPRESS16K /s:"C:\Program Files\Autodesk"

参数解释:

  • /c — 执行压缩
  • /a — 包含隐藏和系统属性文件(查询时则显示压缩比信息)
  • /i — 出错时继续
  • /f — 强制压缩已压缩文件
  • /exe:XPRESS16K — 使用 WOF /EXE 压缩,算法选 XPRESS16K
  • /s:路径 — 递归处理指定目录及所有子目录

如果要压缩下载归档目录,可以换成 LZX

compact /c /a /i /f /exe:LZX /s:"D:\Downloads\Archive"

查看压缩状态

/a 参数可以看到文件是否被压缩以及压缩比:

compact /a "C:\Program Files\Autodesk\*"

输出会显示每个文件的原始大小和压缩后大小,以及压缩比。

解除压缩

如果以后想恢复:

compact /u /a /i /f /exe /s:"C:\Program Files\Autodesk"
compact /u /a /i /f /s:"C:\Program Files\Autodesk"

第一行解除 WOF 压缩,第二行解除传统 NTFS 压缩。两行都跑一遍最保险。

压缩系统文件(官方方式)

先看看系统当前状态——很多 Windows 10⁄11 设备出厂时就已经处于 CompactOS 状态了:

compact /CompactOS:query

如果返回”Compact state”,说明系统已经在用受控压缩了,不需要额外操作。如果返回”non-Compact”而你确实想压缩系统文件,可以执行:

compact /CompactOS:always

这是受控的系统压缩模式,Windows 自己决定哪些文件该压、怎么压,启动链完全兼容。想恢复的话:

compact /CompactOS:never

查看当前状态:

compact /CompactOS:query

不想敲命令?GUI 工具推荐

对于不习惯命令行的用户,有两个不错的图形界面工具:

CompactGUI

开源工具,GitHub 上可以直接下载。它的原理就是调用 Windows 原生的 WOF API,做的事情和 compact /EXE 完全一样,只是提供了一个可视化界面。你可以选择目录、选择算法、一键压缩,还能看到压缩前后的空间对比。

项目地址:github.com/IridiumIO/CompactGUI

Compactor

另一个开源的命令行 GUI 工具,支持按目录批量压缩,也有排除列表功能。

项目地址:github.com/Freaky/Compactor

用 GUI 工具的好处是所见即所得——你可以先看看每个目录有多大、压缩后能省多少,再决定要不要压。


最值得压缩的目录

根据实测经验,以下类型的目录压缩收益最大:

专业软件资源目录

这些目录通常包含大量 XML、JSON、模板、帮助文档、语言包、插件资源,单个文件小但数量极多,WOF 压缩效果很好。

C:\Program Files\Autodesk
C:\Program Files\Siemens
C:\Program Files\SOLIDWORKS Corp
C:\Program Files\Unity
C:\Program Files\Adobe

开发工具链和包缓存

Python 包、Node 包、Java 包缓存这类东西基本不怎么改,但占空间非常夸张:

C:\ProgramData\anaconda3
C:\Users\<User>\.gradle
C:\Users\<User>\.nuget
C:\Users\<User>\.m2
C:\Users\<User>\AppData\Local\pip
C:\Users\<User>\AppData\Local\npm-cache
C:\Users\<User>\AppData\Roaming\npm

SDK 和文档

C:\Program Files (x86)\Windows Kits
C:\Program Files (x86)\Microsoft SDKs
C:\Program Files (x86)\STM32Cube

下载归档和冷数据

这些不常用的文件适合用 LZX 算法压一压,反正也不影响日常使用:

D:\Downloads\Archive
E:\Backup

游戏资源(适度使用)

一些大型游戏的资源文件也可以压,但注意:如果游戏使用了 DirectStorage(Windows 11 上的新特性),WOF 压缩可能会和 DirectStorage 冲突,建议跳过。


不建议压缩的目录

有些东西压了不但没收益,还可能出问题:

C:\Windows              ← 用官方 CompactOS,不要手动递归
C:\Boot
C:\Recovery
C:\System Volume Information
EFI 分区
WinRE 分区

关于 C:\Windows 的压缩,只用 compact /CompactOS:always 这一个入口。不要手动对它执行 /EXE 递归压缩,具体原因后面会说。

另外,已经被压缩过的文件(视频、照片、zip/7z/rar、iso、dmg、exe/msi 安装包)再压基本是白费力气,压缩率通常不到 5%。


性能影响到底有多大

这是很多人最关心的问题:压了以后电脑会不会变慢?

简短的回答:大部分场景下感知不到差异。

详细一点说:

WOF 压缩的原理是用 CPU 解码来换取磁盘读取量减少。对于 XPRESS4K/8K/16K 这类算法,解码开销非常小(微秒级),而 NVMe SSD 的读取速度本来就有富余,所以综合下来通常是持平甚至略快——因为要读的字节数变少了。

LZX 的解码开销相对大一些,但对于不频繁访问的冷数据来说完全可以接受。

对于高性能配置(比如 i7-13700H + Samsung 990 Pro 这种级别),压缩系统文件带来的收益主要是省空间,而不是性能优化。事实上,压缩的额外 CPU 解码开销在某些极端场景下还可能略微拖慢读取。所以这纯粹是一个”用 CPU 换硬盘”的交易。

总结:日常使用选 XPRESS16K 完全没问题,冷数据选 LZX 也没问题,不用太担心性能。

另外一个常见疑问:压了以后 Windows Update 会不会出问题?答案是不会。CompactOS 状态下 Windows 更新正常工作,微软文档明确说更新可以按需替换或移除被压缩的文件。用 /EXE 压缩的程序目录也一样——更新时如果文件被修改,会自动退回非压缩状态,不会阻塞更新流程。


操作建议:从小范围开始

如果你第一次接触这个功能,建议不要上来就全盘递归。先挑一个目录试试:

compact /c /a /i /f /exe:XPRESS16K /s:"C:\ProgramData\anaconda3"

看看压缩前后的空间变化、使用有没有异常。确认没问题了再逐步扩大范围。

如果写自动化脚本,建议用白名单 + 排除列表的方式,而不是从盘符根目录直接递归。一个简单的框架:

# 排除列表:绝对不要碰的目录
$excludePrefixes = @(
    'C:\Windows',
    'C:\Boot',
    'C:\Recovery',
    'C:\System Volume Information'
)

# 白名单:你确认要压缩的目录
$targets = @(
    'C:\Program Files\Autodesk',
    'C:\Program Files\Siemens',
    'C:\ProgramData\anaconda3'
)

foreach ($dir in $targets) {
    $skip = $excludePrefixes | Where-Object { $dir.StartsWith($_) }
    if ($skip) {
        Write-Host "跳过: $dir (命中排除规则)" -ForegroundColor Yellow
    } else {
        Write-Host "压缩: $dir" -ForegroundColor Green
        compact /c /a /i /f /exe:XPRESS16K /s:$dir
    }
}

策略虽然麻烦一点,但边界可控。


最后一个提醒:知心踩过的那个坑

说了这么多好处,必须讲一个真实的教训。

我曾经因为系统盘空间吃紧,用 compact.exe /EXE:XPRESS16K 对整块 C 盘做了递归压缩——包括 C:\Windows。压缩完 Windows 当时还能正常跑,桌面、软件、文件访问全都没异常。看起来成功了。

然后重启了。

机器直接进了 Windows 启动修复,反复失败,强制关机再开机也一样。最后把系统盘挂到另一台机器上做离线检查,发现 C:\Windows 里 551 个 .sys 驱动全部被 WOF 压缩了——包括 ntoskrnl.exehal.dllntfs.sysdisk.syswof.sys 等启动链最底层的文件。

核心问题是:运行中的 Windows 已经加载了 WOF 过滤器,所以压缩完当时能正常读取。但重启后,早期启动环境还没有加载 WOF 过滤器,就已经需要读取那些被压缩的文件了。结果就是——启动链断了。

幸运的是,文件本体还在,只是被压了。用另一台 Windows 离线执行 compact /u /exeWindows 目录解压回来,系统就恢复了启动,没有重装。

一句话总结教训

新式压缩很好用,CompactOS 也确实能稳定压缩 Windows。危险的是把普通文件清理思路套到 C:\Windows 上,手动递归压缩整个启动链。

关于这次翻车的完整排查过程、技术原理分析和修复步骤,我另外写了一篇详细的复盘文章~如果你也遇到了类似问题,那篇文章可能对你有帮助。


总结

WOF 新式压缩是 Windows 里一个被严重低估的功能。对于那些装满了专业软件、开发工具链、包缓存和冷数据的系统盘来说,它能回收非常可观的空间,而且对日常使用性能几乎没有感知。

只要记住三条原则:

  1. 数据目录大胆压,系统目录用官方入口。 程序资源、SDK、包缓存、归档放心用 /EXEC:\Windows 只用 CompactOS:always
  2. XPRESS16K 是万金油,冷数据用 LZX。 不用纠结算法选择。
  3. 从小范围开始,确认没问题再扩大。 不要上来就全盘递归。

你的 C 盘可能真的还能抢救一下。


参考资料

编辑于 2026-06-10 · 著作权归作者所有
相关文章
照片成千上万、视频越来越大?我用NAS尝试了一种全新的整理方式|绿联DH4300 Plus真实体验分享内存条什么时候降价?2026年最强PE工具来袭!驱动齐全、自动联网,秒杀微PE2026硬盘盒保姆级选购攻略!硬盘盒都有什么推荐和避坑?怎么选不踩雷?铁威马、联想、麦沃等热门品牌对比,谁更值得买?内存价格会呈现渐进式下降还是突然暴跌?为什么电脑c盘推荐只留一点?警告:不要再用Rufus在较新的大容量U盘上制作启动盘如何看待内存条价格崩了?极空间NAS怎么选?别再被型号搞晕了,保姆级选购建议电脑D盘E盘全部爆满怎么办?亲测铁威马四款数据备份神器:D2-320/D4-320/D1 SSD/D1 SSD Pro,从外接多盘位硬盘盒到高速移动固态硬盘盒,超详细扩容攻略分享(2026最新版)为什么有些人宁愿放着7、8年的旧电脑也不愿拿去以旧换新?狂飙的内存,涨的不是钱!是人类的终结线!懂电脑的人都建议 SSD 固态不要分区,这是为什么?Windows别再用老方法清理C盘了,分享最新有效清理方法2026年还有哪些合家欢的产品,可以解决家庭哪些问题?现在的固态硬盘为何如此短命?将缓存搬进RAMDisk,体验飞一般的感觉内存条现在涨这么疯,到底什么时候会被打回原形?突发!内存价格大跌!更换一块系统硬盘,不想重装系统,有没有办法把原系统直接备份到新硬盘上?