前言
C 盘爆满,直接会影响到电脑的正常使用。
这种情况下,不得不对 C 盘进行清理。
但对 C 盘没什么研究的情况下,要搞定 C 盘清理,还是有点举足无措。
狠下心删文件,但一不小心删掉系统文件,就直接要重装系统。
重装是小事,数据丢失是大事。
所以,如何安全有效地清理 C 盘,是个技术活。
这里分享一个我一直以来使用的方案,希望能帮助到需要的朋友。
思考
释放 C 盘磁盘空间,有两个方案。
第一个,肯定是直接删除无用的文件。
但是,C 盘的文件,要么是系统文件,要么是各种软件的运行文件。
如果自己能精确识别出哪些文件能删除,哪些文件不能删,那问题自然不大。
但 C 盘里,除了正常命名的文件夹,还有大量的加点隐藏文件夹,还有些是一串序列号命令的文件夹。
这些特殊文件夹下经常占用大量磁盘空间,而大部分人也不太具备识别能力,我也差不多。
所以,怕删错文件,导致系统或者自己使用的程序出现故障,就只能想其他方案。
不敢删除,那是否可以转移呢?
所以基于这个思路,把文件转移到其他磁盘,深入思考。
如何转移才能保证不影响当前系统和软件的正常运行?
转移哪些文件?
如何转移?
如何转移的核心点在于,要保证转移文件后,不会影响当前系统状态。
我们大多数人应该知道什么是快捷方式。
通过快捷方式,我们可以直接访问到目标文件或者文件夹。
但快捷方式,本质上是一个独立的 .lnk 文件,文件中存储有真实的文件路径。
windows 系统可以解析 .lnk 文件,并解析和提取出存储的文件路径,因此可以通过快捷链接访问目标文件。
脑子转得快的朋友,可能马上想到,我们可以从 C 盘迁移文件,然后再在 C 盘创建迁移后的文件快捷方式。
我的方案,也是这个逻辑。
但是,不能用快捷方式。
因为快捷方式本身就是一个独立的文件,对于系统程序、安装的软件程序,是无法解析和识别的。
当程序定位到快捷方式后,会因为路径解析失败而报错,比如 “目录不存在”。
那还有其他的工具吗?
不绕弯子了,答案是:符号连接。
符号链接也叫 软连接,和快捷方式不同,软连接的本质是重定向。
当程序定位到符号链接后,路径会被系统内核直接重定向到目标目录或者文件。
所以,按照上面的思路,迁移文件到其他盘后,在 C 盘原处建立一个 软连接,就和迁移前的效果一样。
这也就达到了即释放了 C 盘空间,又不会影响当前系统和软件环境的效果。
转移哪些文件?
解决了最核心的难点,剩下的就是判断要迁移哪些文件。
一股脑把 C 盘所有文件迁走即没必要,也不现实。
保证 C 盘有几十个 G 的空间,不因为磁盘空间影响正常使用即可。
所以,我们只需要识别出大文件或者大文件夹。
肯定不可能手动一个个文件夹下去筛选查看,直接找个现成的磁盘空间扫描工具即可。
这里推荐一个工具:TreeSize Free,总共 13.2M,效果如下:
如上截图可以看到,我的 C 盘,大部分空间就被 User 盘占据。
具体是哪些文件夹,哪些文件,可以一一展开,这里就不细说了。
但注意,Windows 文件夹基本都是系统文件,最好不要动。
一般可以迁移 User/{账号名}/AppData、Program Files 文件夹下的内容,一般问题不大。
具体迁移步骤
-
使用 TreeSize Free 识别 C 盘下的大文件。
-
剪切 User/{账号名}/AppData、Program Files 文件夹下的大文件夹到其他盘。
-
在 C 盘剪切处,建立符号链接。
-
示例:把 C:\Program Files\Docker 迁移到 D:\C_backup\Program Files\Docker
-
剪切后,建立软链,操作如下所示:
# 以管理员身份进入 windows 命令行 # Win+R,输入 cmd,然后按 Ctrl+shift+Enter # 进入命令行工具页面后,输入如下命令建立软链接 mklink /D "C:\Program Files\Docker" "D:\C_backup\Program Files\Docker"
-
-
打开相关的软件,检查下面 2 项,如果正常的情况下,则标识迁移成功。
-
相关软件是否正常运行;
-
操作文件后,查看迁移后的文件夹是否存在新更新的文件。
按照如上迁移步骤,就能实现 C 盘的释放。
但实际操作过程中,尤其是在剪切文件夹迁移时,会遇到两个问题:
-
由于某些文件夹文件数过多,导致剪切速度很慢。
-
存在程序使用中的占用。
第一个问题,是因为直接剪切迁移,系统要先遍历完整文件夹下的所有内容。
在跨磁盘迁移的时候,也会一个个文件进行操作,如果文件夹下有几十万个文件,就会有几十万次的文件操作,所以,针对这种情况,需要优化一下迁移方式。
可以通过压缩软件,将一个大文件夹,压缩为一个文件,然后再剪切。
这样操作后,自然就将几十万的文件数量变成了 1 个。
而压缩和解压的速度,都是在一个磁盘下操作,文件操作的速度自然快速了很多。
对于第二个问题,自然是要先停止当前迁移的文件关联程序的运行。
但确实有些软件很恶心。
比如我遇到过金山系列的软件,有个 kingsoft 的文件夹,占用好几个 G 的磁盘。
我每次迁移都会提示有程序在运行,但实际上我已经关闭了所有金山系的软件,而且反复检查了任务管理器中没有相关可标识的程序在运行,但就是提醒有程序占用。
关闭了所有金山系列的程序自启动,然后重启电脑,才最终把 kingsoft 文件夹删除掉。
自动化脚本
手动执行上述操作流程如下:
-
打开 TreeSize Free 扫描 C 盘下的磁盘空间占用;
-
肉眼查看磁盘 User/{账号名}/AppData、Program Files 文件夹下,占用超过 1G 的大文件;
-
手动进入 C 盘,依次压缩大文件夹;
-
手动剪切压缩文件到目标磁盘路径,解压;
-
手动删除 C 盘原路径下的文件夹;
-
如果文件夹删除失败,手动打开任务管理器,结束相关程序的线程任务,重新删除。
-
手动用管理员权限打开 cmd 命令输入框,输入如下命令创建软链接
mklink /D "C:\Program Files\Docker" "D:\C_backup\Program Files\Docker"
- 检查链接是否生效,在命令行输入如下命令:
dir "C:\Program Files\Docker"
如果显示 <SYMLINKD>
,并指向 D:\C_backup\Program Files\Docker
,说明链接创建成功。
整个流程在实际操作过程中,还是有些费时费力。
所以,周末两天,利用 AI,也开发了一个自动化的工具:migrateC 。
工具的使用方式,参考仓库的 README 说明。
总结
通常情况下,即使 C 盘仅剩余几百兆或一两个 G 的空间,系统依然能够正常运行,且一般不会出现明显的性能问题。然而,部分软件(如某些开发 IDE)在为新项目建立索引文件时,可能会占用数 GB 的磁盘空间。一旦 C 盘空间不足,不仅会导致相关软件运行异常,还可能使系统出现卡顿、蓝屏甚至崩溃等严重问题。因此,合理管理 C 盘空间至关重要。
但目前 C 盘空间的使用大多是由系统和软件的默认设置决定的,这使得我们难以准确区分哪些文件和数据是有用的,哪些是无用的。此外,许多不熟悉电脑操作的用户在安装软件时,往往会直接选择默认安装路径,这无疑会进一步占用 C 盘的宝贵空间。
鉴于此,掌握有效的 C 盘空间管理思路,将有助于从根本上解决这些问题。
用自动化工具,也可以更加高效地管理 C 盘空间,从而有效避免因空间不足而导致的各种问题,让 C 盘空间管理变得更加轻松、高效,从此不再为 C 盘爆满而烦恼!
希望对你有帮助!