VSCode修改扩展和用户文件夹目录位置(Windows)

这篇具有很好参考价值的文章主要介绍了VSCode修改扩展和用户文件夹目录位置(Windows)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


vscode的扩展和用户数据都是默认在C盘下的

extensions:C:\Users\.vscode\extensions

user-data:C:\Users\AppData\Roaming\Code

一般来说,用户文件夹大小会比扩展目录的大小会大,就我而言,我的扩展有1-1.5GB的大小,而用户文件夹却占了我5GB容量,这对C盘容量严重不足的用户是非常难受的

所以,修改这两个文件夹的目录位置以及刻不容缓

VSCode便携版(不推荐)

官方有一个zip版本的VSCode

当我们解压完毕后:

  1. 在当前VSCode目录下新建一个data文件夹
  2. 点击Code.exe启动,启动完毕后关闭
  3. 进入当前的data目录,可以发现有扩展目录,以及用户文件夹
    • VSCode修改扩展和用户文件夹目录位置(Windows)
  4. 然后我们只需要将C:\Users\.vscode\extensions目录下的所有扩展文件夹全选复制到extensions目录中,以及将C:\Users\AppData\Roaming\Code文件夹内的所有文件全选复制到user-data目录内,再次打开Code.exe程序,就可以发现根以前的VSCode一模一样的配置以及扩展

缺点

但是我当时遇到的问题是当文件右键,或者文件夹右键时,不能通过VSCode打开文件,此时需要打开注册表,修改通过VSCode打开的程序位置。

同时也发现了一个弊端,就是需要管理员权限的文件夹打不开,也写不进去,可以通过将Code.exe程序右键->属性->兼容性->以管理员身份运行此程序->应用。但经过这操作后,我发现的问题是VSCode窗口的工作空间不能将文件拖进去。上网一搜发现,只需要将Code.exe的以管理员身份运行此程序取消勾选,那这不就跟我预期的冲突了嘛😳😳

后来想到了还是使用安装版的,想办法将两个大文件目录位置修改一下

VSCode安装版(推荐)

安装版网址

选择 System Installer 再根据自己的系统选择,下面的.zip就是上面说的便携版

要修改两个文件夹的位置,就需要使用官方的高级 CLI 选项了

有两个选项我们可以用得上:--extensions-dir <dir>--user-data-dir <dir>,但这些命令对于便携版是不能生效的

可以将这两个选项添加到VSCode的快捷方式后面

  • 右键VSCode快捷方式->快捷方式->目标-> 在后面添加空格再加上--extensions-dir "D:\.vscode\extensions" --user-data-dir "D:\.vscode\user-data"自行替换目录位置

  • 我的设置⬇️

    • "D:\.Software\Microsoft VS Code\Code.exe" --extensions-dir "D:\.vscode\extensions" --extensions-dir "D:\.vscode\extensions" --user-data-dir "D:\.vscode\user-data"
      

VSCode修改扩展和用户文件夹目录位置(Windows)

但是就这样修改不能保证文件右键通过Code打开会使用指定的 扩展文件夹以及用户文件夹

接下来需要修改注册表的主要VSCode打开方式修改

  • 对选中文件右键点击弹出的菜单
  • 对选择目录右键点击弹出的菜单
  • 在目录空白处右键点击弹出的菜单
  • 对磁盘分区右键点击弹出的菜单

相对应的注册表位置为

计算机\HKEY_CLASSES_ROOT\*\shell\VSCode\command
计算机\HKEY_CLASSES_ROOT\Directory\shell\VSCode\command
计算机\HKEY_CLASSES_ROOT\Directory\Background\shell\VSCode\command
计算机\HKEY_CLASSES_ROOT\Drive\shell\VSCode\command

注册表打开:Win+r->输入:Regedit->回车

找到这些注册表项,在Code.exe 后添加同快捷方式一样的参数内容:

--extensions-dir "D:\.vscode\extensions" --user-data-dir "D:\.vscode\user-data"

例如:

"D:\.Software\Microsoft VS Code\Code.exe" --extensions-dir "D:\.vscode\extensions"  --user-data-dir "D:\.vscode\user-data" "%1"

VSCode修改扩展和用户文件夹目录位置(Windows)

将四个注册表位置的数值数据一一添加即可,当然主要的是这四个位置,还有一些其他的文件打开可以执行添加

终端使用code . 命令打开项目

当使用code . 命令时,又发现了一个小问题,通过此命令打开的VSCode 还是不能找到扩展和用户文件夹

解决办法如下⬇️

code . 命令,是通过环境变量PATH 中配置的路径找到VSCode的安装位置,下面的bin目录里面有一个code.cmd

VSCode修改扩展和用户文件夹目录位置(Windows)

安装版的VSCode会默认帮我们添加环境变量

检查一下code.cmd文件

@echo off
setlocal
set VSCODE_DEV=
set ELECTRON_RUN_AS_NODE=1
"%~dp0..\Code.exe" "%~dp0..\resources\app\out\cli.js" --ms-enable-electron-run-as-node %*
endlocal
  • 可以发现第五行有一个..\Code.exe,表示运行上一个目录的Code.exe程序

  • 再往后面看,可以发现--ms-enable-electron-run-as-node有点像高级CLI选项,我们可以将上面提到的--extensions-dir--user-data-dir继续添加在后面。下面是我添加后的代码,自行更换路径即可

    • @echo off
      setlocal
      set VSCODE_DEV=
      set ELECTRON_RUN_AS_NODE=1
      "%~dp0..\Code.exe" "%~dp0..\resources\app\out\cli.js" --ms-enable-electron-run-as-node  --extensions-dir "D:\.vscode\extensions"  --user-data-dir "D:\.vscode\user-data" %*
      endlocal
      

最后再使用code . 命令就可以找到扩展和用户信息文件夹了

问题

更新之后,VSCode会重置注册表

解决办法

使用注册表 .reg 文件一键修改

注意!

  • 地址值有些符号需要使用 \ 转译,可通过将复制下来的未转译字符串路径使用IDEA 自动转译

  • 路径修改为自己的本地路径

  • 由于内容出现 通过 Code 打开 中文,需要将文件另存为UTF-16 LE注册表默认编码,否则会出现乱码

    VSCode修改扩展和用户文件夹目录位置(Windows)

String str = "路径"
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\VSCode]
@="通过 Code 打开"
"Icon"="D:\\.Software\\Microsoft VS Code\\Code.exe"

[HKEY_CLASSES_ROOT\*\shell\VSCode\command]
@="\"D:\\.Software\\Microsoft VS Code\\Code.exe\" --extensions-dir \"D:\\.vscode\\extensions\"  --user-data-dir \"D:\\.vscode\\user-data\" \"%1\""
  
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\VSCode]
@="通过 Code 打开"
"Icon"="D:\\.Software\\Microsoft VS Code\\Code.exe"

[HKEY_CLASSES_ROOT\Directory\shell\VSCode\command]
@="\"D:\\.Software\\Microsoft VS Code\\Code.exe\" --extensions-dir \"D:\\.vscode\\extensions\"  --user-data-dir \"D:\\.vscode\\user-data\" \"%V\""

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\VSCode]
@="通过 Code 打开"
"Icon"="D:\\.Software\\Microsoft VS Code\\Code.exe"

[HKEY_CLASSES_ROOT\Directory\Background\shell\VSCode\command]
@="\"D:\\.Software\\Microsoft VS Code\\Code.exe\" --extensions-dir \"D:\\.vscode\\extensions\"  --user-data-dir \"D:\\.vscode\\user-data\" \"%V\""

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Drive\shell\VSCode]
@="通过 Code 打开"
"Icon"="D:\\.Software\\Microsoft VS Code\\Code.exe"

[HKEY_CLASSES_ROOT\Drive\shell\VSCode\command]
@="\"D:\\.Software\\Microsoft VS Code\\Code.exe\" --extensions-dir \"D:\\.vscode\\extensions\"  --user-data-dir \"D:\\.vscode\\user-data\" \"%V\""

[HKEY_CLASSES_ROOT\vscode\shell\open\command]
@="\"D:\\.Software\\Microsoft VS Code\\Code.exe\" --extensions-dir \"D:\\.vscode\\extensions\" --user-data-dir \"D:\\.vscode\\user-data\" \"--open-url\"  \"--\" \"%1\""

[HKEY_CLASSES_ROOT\VSCodeSourceFile\shell\open\command]
@="\"D:\\.Software\\Microsoft VS Code\\Code.exe\" --extensions-dir \"D:\\.vscode\\extensions\"  --user-data-dir \"D:\\.vscode\\user-data\" \"%1\""

2023/04/16 ↓

当然也可以写一个bat脚本自动执行

  • 创建一个code.cmd 将上面的添加命令行参数的内容写入

  • 重命令 注册表批处理文件为update.reg

  • 创建update.bat 文件

    • 写入内容

    • @echo off
      
      rem 注册表的路径
      set "regFilePath=D:\.vscode\update.reg"
      rem 重写的code.cmd 文件路径,后面会替换vscode bin 目录下的code.cmd
      set "cmdFilePath=D:\.vscode\code.cmd"
      rem VScode的安装路径
      set "destinationFolderPath=D:\.Software\Microsoft VS Code\bin"
      rem ----↓ 以下不用动
      set "destinationFilePath=%destinationFolderPath%\code.cmd"
      
      rem 运行注册表文件
      regedit /s "%regFilePath%"
      
      rem 复制并替换文件,需要管理员权限
      copy /y "%cmdFilePath%" "%destinationFolderPath%"
      if exist "%destinationFilePath%" (
          takeown /f "%destinationFilePath%"
          icacls "%destinationFilePath%" /grant administrators:F
      )
      move /y "%destinationFolderPath%\code.cmd" "%destinationFilePath%"
      
      
  • 管理员运行update.bat

终极解决办法!(强烈推荐)

经过一顿操作,终于又想到一个非常简单的办法

为VScode C盘默认的 .vscodeCode 创建软连接
如果根据上一步操作,建议直接卸载VSCode,重装一遍,因为接下来的操作,完全不用那么麻烦

  • C 盘用户文件 Code 直接剪切到新路径
  • 确保目标路径文件夹不存在 ,输入下面的第一条命令。
  • 由于"%USERPROFILE%\.vscode"路径下有一个默认的extensions,所以不能使用"D:\.vscode\extensions" 路径,否者会不生效
  • 还有需要注意的是,这个命令是cmd命令,需要使用cmd命令窗口执行
  • 路径自行替换
mklink /D "%APPDATA%\Code" "D:\.vscode\user-data"
mklink /D "%USERPROFILE%\.vscode" "D:\.vscode\"
  • 如果需要删除软连接
rd /s "%APPDATA%\Code"

我的博客,欢迎前往: https://blog.ivwv.site/文章来源地址https://www.toymoban.com/news/detail-401350.html

到了这里,关于VSCode修改扩展和用户文件夹目录位置(Windows)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Windows 11 的C盘User(用户)文件夹下的用户文件夹名称的修改

    背景介绍:由于系统重装导致Windows 11的系统用户名与C盘User(用户)文件夹下的用户名文件夹(公用文件夹旁边的文件夹)出现名称不一致,事例中系统用户名命名为“寂萧”,User(用户)文件夹下的文件夹名称却是“77555”。【QQ邮箱前五位真的真的看着很别扭】 注:改名

    2024年02月14日
    浏览(91)
  • 如何修改Android Studio的.android/.gradle文件夹存放位置?

    ①首先我们关闭Android Studio(若未启动直接跳过此步骤); ②然后我们在目标位置新建一个文件夹,用来存放原先位于用户目录的 .android/.gradle 两个文件夹,以E盘Android_Studio_Data文件夹为例; 【注:建议文件夹名不留空格】 ③将原先位于用户目录的 .android/.gradle 两个文件夹自

    2024年02月06日
    浏览(69)
  • Win10 修改用户名及 Users 内文件夹

    参考链接: Windows 10 修改用户名及Users文件夹 系统信息:Windows 10 专业版 21H2 快捷键 Win + X 选择 计算机管理 - 系统工具 - 本地用户和组 - 用户 ; 右键要变更的用户名进行更改。 快捷键 Win + R 输入 regedit 进入注册表界面; 进入路径 计算机HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows

    2024年02月04日
    浏览(66)
  • 修改电脑C:\User\用户名文件夹的名字

    有些时候安装的软件会莫名的提示报错,可能是不能识别C:User用户名文件夹的名字,因为用户文件夹的名字是中文的 1、Win+R打开运行窗口,输入regedit,打开注册表 2、HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionProfileListS-1-5-21-开头的文件,找到该文件   3、右侧名称为

    2024年02月12日
    浏览(50)
  • ubuntu修改用户名、主机名、主文件夹名、登录名、密码(完整版)

    上图中@前面的是用户名,@后面的为主机名。 1.修改用户密码: 输入两次新密码之后即可修改完成. 2.修改主机名: 切换到root用户 修改自己喜欢的主机名 将第二行后面的名字修改成自己的主机名。主机名修改完成 3.修改用户名、住文件夹名、登录名 为自己 的用户添加 gym

    2023年04月16日
    浏览(43)
  • cp命令 复制多个目录/文件夹下文件到指定目录

    可以使用cp命令的通配符和递归选项来复制多个目录下多个文件夹下的文件到指定目录。 如果目标目录不存在,可以使用 mkdir -p命令来创建目录。 -p 选项表示递归创建目录,如果目录已经存在,则不会报错。 例如,以下命令会复制 /path/to/dir1和 /path/to/dir2 下的所有子目录中的

    2024年02月12日
    浏览(73)
  • 3、HDFS的使用(读写、上传、下载、遍历、查找文件、整个目录拷贝、只拷贝文件、列出文件夹下文件、删除文件及目录、获取文件及文件夹属性等)-java

    1、hadoop3.1.4简单介绍及部署、简单验证 2、HDFS操作 - shell客户端 3、HDFS的使用(读写、上传、下载、遍历、查找文件、整个目录拷贝、只拷贝文件、列出文件夹下文件、删除文件及目录、获取文件及文件夹属性等)-java 4、HDFS-java操作类HDFSUtil及junit测试(HDFS的常见操作以及H

    2024年02月16日
    浏览(61)
  • Linux移动文件和文件夹(目录)命令

    命令mv 英文move 翻译移动 mv命令可以移动文件或文件夹(目录),也可以重命令(覆盖)文件。 1. 移动文件/重命名 单纯地移动某一个文件直接使用: 这个方法也可以用来修改文件的名称。 2. 移动文件夹(目录)下的内容 如要移动某个文件夹下的 某个内容: 即可移走###内容

    2024年02月06日
    浏览(50)
  • python遍历文件夹下的所有子文件夹,并将指定的文件复制到指定目录

    在1文件夹中有1,2两个文件夹 将这两个文件夹中的文件复制到 after_copy中 源文件 复制后: 参考1 源文件 复制后 参考2 如果复制bmp文件就将 suffix = \\\".json\\\" 改为 suffix = \\\".bmp\\\"

    2024年02月11日
    浏览(92)
  • 安卓的工程目录文件夹简单介绍

    当创建了一个安卓工程之后,系统会生成很多文件夹,那么这些文件夹都存放的是什么东西呢? src:存放java代码,有包,有文件。相当于普通java程序的src文件夹。 gen:存放自动生成的文件。R.java存放的是程序的页面、按键、文本等的id。 Android 4.4和Android Private Libaries:安卓

    2024年02月05日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包