Windows 上 C 盘满了,很多人第一反应是清缓存、删文件、搬家。其实只要 C 盘和 D 盘在同一块物理硬盘上,D 盘空着的那些空间是可以直接"借"给 C 盘的——不需要重装系统,不需要格式化,也不需要把文件搬来搬去。
本文按实测顺序讲清楚:什么情况下能借、怎么借、什么情况下不能借,以及动手前要过的检查清单。
一、先分清两种「C 盘满了」
场景 | 典型原因 | 对应做法
系统盘和数据盘在同一块物理盘 | 分区划小了,C 盘满了但 D 盘空着 | 缩分区边界,把空闲空间给 C 盘
C 盘和 D 盘是两块不同硬盘 | 容量规划本来就分开了 | 只能清理、迁移文件或换更大的盘
判断方法:在「磁盘管理」里看盘符对应的磁盘编号,C: 和 D: 都在「磁盘 0」上就是同一块物理盘;分别在「磁盘 0」「磁盘 1」上就是两块盘。也可以用 PowerShell 一行确认:
Get-Partition|Select-ObjectDiskNumber,PartitionNumber,DriveLetter,Size同一个 DiskNumber 才是同一块物理盘。
二、为什么不需要搬文件
同盘扩容之所以让人抗拒,通常是担心两件事:数据会不会丢、过程会不会很久。
实际做法是不动数据:把 D 盘的分区边界往里缩,空出来的部分变成「未分配」,紧接着在 C 盘上执行「扩展卷」,Windows 会把这段未分配空间直接接到 C 盘尾部。整个过程只动分区表,不搬运文件,速度取决于分区大小和磁盘负载,一般是分钟级,也不需要格式化。
需要注意的前提:缩容那一侧(D 盘)里不能有超出其尾部位置的文件,因为分区只能从尾部收缩;如果 D 盘尾部有数据,需要先把它挪走。
三、具体怎么借
有一款专门做这件事的小工具:ScsExpand,官网 https://expand.scsoi.com/ 。它把同一块硬盘上其它分区的空闲空间扩进系统盘,不搬文件、不格式化。官网提供可下载的试用版,具体以官网说明为准。
装完先别急着动盘:
- 打开它,先看能识别到的物理盘与分区,确认 C 盘和目标分区在同一个物理盘上
- 确认目标分区尾部没有越界文件——这是缩容失败最常见的原因,工具在扫描时会把这类文件标出来
- 选目标分区,指定要把它的空闲空间划给系统盘,设置要划出的容量
- 执行前按提示做一次完整备份,或至少确认有可用镜像:分区操作没有后悔药
- 等它跑完:过程中会重启一到两次,进度在界面上显示,期间不要强制关机
扩容完成后系统盘可用空间会立刻变大,原来堆在 C 盘根目录的项目、缓存、模型文件不用搬家。
四、什么情况下这套方法不适用
把边界划清楚比宣传更有用:
- C 盘和 D 盘不在同一块物理硬盘上:物理上不能把一块盘的空间划给另一块盘,只能清理、迁移文件或换盘
- 中间夹着 OEM 恢复分区:恢复分区在 C 盘和 D 盘中间时,需要先处理恢复分区,步骤会复杂很多
- 开了 BitLocker:先暂停保护并留好恢复密钥,操作完再恢复
- 休眠文件与系统还原点:hiberfil.sys、pagefile.sys 可能比预期占得多,扩容前先关掉休眠能腾出可观空间
- 虚拟磁盘 / 动态磁盘 / 存储空间:这类结构不是普通分区,工具不碰,需要用对应的系统工具处理
五、动手前的检查清单
- 确认 C 盘与目标分区在同一个物理盘(Get-Partition 看 DiskNumber)
- 重要数据已备份,或已做完整镜像
- 目标分区尾部没有越界文件
- 已记录 BitLocker 恢复密钥(如果开了加密)
- 计划在方便的时间操作,中途会重启
- 笔记本接电源,电量充足
六、写在最后
如果 C 盘和 D 盘在同一块硬盘上,「C 盘满了」不需要重装系统,也不需要搬家整理——同盘扩容是更省事的解法。
另外两件事不是同一类需求:把 WebDAV / NAS 挂成「设备和驱动器」下的真实本地磁盘,和把本地文件夹映射成盘符,分属不同场景,选之前先确认自己要的是哪一种。
问题可以联系 support@scsoi.com。
利益披露:本文与 ScsExpand 相关,作者是这款工具的开发方。