VS Code缓存清理

C盘空间不够用了,查了一下占用C盘体积比较多的软件,发现vscode赫然在列。于是查了一下清理这一部分占用空间的方法。

参考

缓存文件的默认路径

代码智能感知系统缓存

Windows上的默认缓存路径为

1
%LocalAppData%/Microsoft/vscode-cpptools

例如

1
C:\Users\[用户名]\AppData\Local\Microsoft\vscode-cpptools

Linux 上为

1
$XDG_CACHE_HOME/vscode-cpptools/

(若未定义 XDG_CACHE_HOME ,则为 $HOME/.cache/vscode-cpptools/),

Mac 上为

1
$HOME/Library/Caches/vscode-cpptools/`

如果未指定路径或指定的路径无效,则使用默认路径。

插件和用户数据缓存

  • 插件缓存:C:\Users\[用户名]\.vscode\extensions
  • 用户缓存:C:\Users\[用户名]\AppData\Roaming\Code

通过创建软链接的方法清理磁盘空间

这个方法的原理很简单,就是把原本在C盘目录下的文件夹移动到另一个磁盘当中,这样C盘的空间就空出来的。但是vscode下一次启动时还是会去相同的目录下寻找这些文件,怎么办呢?所以我们再在原来的位置创建一个软链接,并让这个软链接指向新的位置,这样vscode就以为那些文件还在原来的地方。

在讲述具体方法之前,先来辨析一下概念: 软链接/符号链接(Linux & Windows) vs 快捷方式(Windows)

什么是软链接/符号链接

软链接/符号链接(Linux & Windows)

  • 定义:软链接或符号链接是一种特殊的文件类型,它包含一个指向另一个文件或目录的路径。这个路径可以是相对的也可以是绝对的。
  • 特点:是一个文件系统级别的指针,操作系统在访问时会自动解析并跳转到目标位置。它可以在命令行工具和文件系统操作中透明地工作。
  • 创建方式:
    • Linux上为 ln -s <target> <link> ,其中<target> 是目标位置,<link>是要创建软链接文件的位置。
    • Windows上为 mklink /D <link> <target> ,其中<target> 是目标位置,<link>是要创建软链接文件的位置。注意mklinkln -s 的两个输入参数的先后顺序是相反的,使用时应当注意辨别。另外,这个指令需要管理员权限,可以通过按下win+X按钮→“命令提示符(管理员)”进入管理员模式下的命令行窗口

快捷方式(Windows)

  • 定义:快捷方式是Windows操作系统特有的机制,用于创建指向程序、文件或文件夹的链接。它本质上是一个包含目标对象位置信息的特殊文件。
  • 特点:快捷方式图标通常有一个小箭头标志,表明它是一个链接。和软链接一样,如果目标被删除或移动,快捷方式将失效。需要注意的是,快捷方式是一个特殊的文件(.lnk),包含指向目标文件或目录的信息,但它不会被文件系统直接解析为实际路径。应用程序和命令行工具需要显式支持才能正确处理快捷方式。
  • 创建方式:鼠标右键→创建快捷方式。

具体做法

大致思路为:①把C盘目录下的几个缓存文件夹移动到另一个剩余空间比较大的磁盘中(例如H盘);②使用mklink指令在原先的位置创建符号链接。

下面是一个指令示范(仅作为参考,实际使用时需要将下面的路径改为读者电脑上的实际路径)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
cd C:\Users\ab124\ # 切换到用户主文件夹
copy .vscode H:\.vscode # 移动缓存目录到新磁盘
move .vscode .vscode-old #保留一份备份,为了防止复制时出错
mklink /d .vscode H:\.vscode # 创建符号链接

cd C:\Users\ab124\AppData\Roaming # 切换到用户缓存文件夹
copy Code H:\ab124\AppData\Roaming\Code # 移动缓存目录到新磁盘
move Code Code-old #保留一份备份,为了防止复制时出错
mklink /d Code H:\ab124\AppData\Roaming\Code # 创建符号链接

## 下面启动vscode,测试上述的更改是否正常生效。
## 如果vscode正常打开无报错,说明上述更改成功
## 此时,关闭vscode,清理一下上面的备份
cd C:\Users\ab124\
del .vscode-old
cd C:\Users\ab124\AppData\Roaming
del Code-old

以上。