¶概述
随着使用时间的增长,Windows系统C盘上会产生大量的临时文件、软件缓存、日志文件等,这些文件会占用越来越多的磁盘空间,从而导致系统运行缓慢、响应迟钝等问题。如果及时清理这些无关紧要的文件,就可以为计算机腾出更多的磁盘空间,提高系统性能和响应速度。我们可以通过 SpaceSniffer 等磁盘空间分析软件可以分析出C盘中占用空间比较大的目录或文件。
通常安装的应用程序都会将运行时的数据、缓存、日志、临时文件等存到C盘的 C:\Users\%username%\AppData
目录下,所以这个目录一般会比较占用空间。Windows系统的AppData目录是用于存储应用程序数据的文件夹,它位于每个用户的个人文件夹中。通常情况下,这个文件夹是隐藏的,需要在文件夹选项中选择“显示隐藏的文件、文件夹和驱动器”才能看到。AppData目录包含三个子目录:Local、Roaming和LocalLow。其中:
- Local:存储应用程序无需跨多设备同步的数据,包括本地应用程序数据,包括缓存、日志、临时文件等。例如:编译器构建缓存,浏览器缓存等。
- Roaming:存储用户配置文件和跨多设备同步的数据。例如:vscode配置、QQ聊天记录、浏览器书签等。
- LocalLow:存储低权限访问数据,例如:在受保护模式下运行时浏览器的临时文件。
一般Local目录是下的文件都是可以删除的,因为这些文件通常不会影响到操作系统的正常运行。但是对于用户安装的应用程序,如果删除到这些程序的数据文件,则可能会影响应用程序的正常运行。缓存、日志、临时文件等都是可以删除的,但是由于这个目录存放了太多程序的数据,以至于很难找到它们,另外应用程序的数据文件又不知道该不该删除,所以删除这个目录里的文件就会变得很棘手。特别说明的是C:\Users\%username%\AppData\Local\Temp
里的文件是可以放心删除的,不会影响到应用程序的正常运行。为了应用程序的正常运行,一般对于Roaming目录下的文件都不建议删除。
为了解决以上问题,这里给出两种处理方案:
¶定期清理方案
第一种就是总结C盘垃圾清理经验给出的Windows批处理脚本,只需双击执行这个脚本就能清除大部分不影响操作系统和应用程序运行的垃圾,不过这种方式只能一次性清理,需要定期执行清理脚本。脚本如下:
创建脚本文件:C盘垃圾清理.bat
1 | @echo off |
¶通过软链接迁移目录方案
¶1. 概述
第二种方案是针对于不能删除或者不清楚是否可以删除的情况,即通过将C盘中的目录移动到其他盘的目录,然后再在C盘原目录下建立同名的软链接指向新目录,软链接本身几乎不占用存储空间(几个字节),这种方式即能节省C盘空间又不影响操作系统和应用程序的运行。另外这种方式的优点就是比较省心,不用定期清理C盘。
¶2. 迁移目录并创建软链接
¶方式1:cmd命令迁移
管理员身份运行cmd命令执行:
1 | #创建目录 |
可以通过 SpaceSniffer 工具查找出C:/Users/%username%
目录里空间占用比较大的目录,然后通过选择性的进行处理。建议原目录和新目录里的子目录保持一致,这样也更好维护一点,也能原目录和新目录的子目录相对路径一致,查找起来也比较方便。
💁♂ 提示:请务必确保所操作的目录没有被程序占用,一定注意要把相关目录占用的程序关掉(比如QQ、Chrome等),否则迁移失败。
📑 示例:通过软链接迁移腾讯软件(QQ、微信等)的数据和缓存目录
1
2
3
4 mkdir E:\Cache\SymlinkData\AppData\Local\Google
xcopy /s /e /h /y C:\Users\%username%\AppData\Roaming\Tencent E:\Cache\SymlinkData\AppData\Roaming\Tencent
rd /s /q C:\Users\%username%\AppData\Roaming\Tencent
mklink /D C:\Users\%username%\AppData\Roaming\Tencent E:\Cache\SymlinkData\AppData\Roaming\Tencent🔖 常见的需要迁移的目录如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 ##(1)Chrome数据和缓存目录:
C:\Users\%username%\AppData\Local\Google #可迁移至:E:\Cache\SymlinkData\AppData\Local\Google
##(2)腾讯软件(QQ、微信等)的数据和缓存目录:
C:\Users\%username%\AppData\Roaming\Tencent #可迁移至:E:\Cache\SymlinkData\AppData\Roaming\Tencent
##(3)vscode
#vscode插件目录:
C:\Users\%username%\.vscode #可迁移至:E:\Cache\SymlinkData\.vscode
#vscode数据目录:
C:\Users\%username%\AppData\Roaming\Code #可迁移至:E:\Cache\SymlinkData\AppData\Roaming\Code
#vscode缓存目录(C盘没有数据的话可以不迁移):
C:\Users\%username%\AppData\Local\Programs\Microsoft VS Code #可迁移至:E:\Cache\SymlinkData\AppData\Local\Programs\Microsoft VS Code
#vscode C/C++编译缓存目录:
C:\Users\%username%\AppData\Local\Microsoft\vscode-cpptools #可迁移至:E:\Cache\SymlinkData\AppData\Local\Microsoft\vscode-cpptools
¶方式2:批处理脚本迁移
如果以上操作比较麻烦也可以将这些命令写成脚本执行,如下:
创建脚本文件:通过软链接迁移目录.bat
1 | @echo off |
¶3. 查找创建的软链接
在后期的维护中创建的软链接越来越多,需要找出创建的软链接和其指向路径就会变得很麻烦。下面给出几种查找已创建软链接的方式。
¶方式1:cmd命令查找
可以通过如下cmd命令查找已创建软链接,操作如下:
1 | #查看某目录及其子目录下的所有软软链接 |
¶方式2:python脚本查找
如果上面的cmd命令查找不理想,还可以通过执行python脚本来查找,操作如下:
创建脚本文件:get_symlinks.py
1 | import os |
¶4. 其他说明
(1)关于快捷方式和软链接的说明
-
快捷方式(shortcut):实际上是一个后缀.link的文件,删除快捷方式文件不影响原始文件,删除原始文件则快捷方式文件将变成无效文件。这个文件只有在windows图形界面下点击才能到达目标文件路径,在命令行下仅是一个文件,程序不会将其当作链接。
-
软链接(symbolic link):也称符号链接,本质是一个指向文件或目录的指针文件,删除软链接文件不影响原始文件,删除原始文件则软链接文件将变成无效文件。这个文件在图形界面与快捷方式无异,但在命令行下程序会把它当做一个链接。