VSCode启动时默认打开的文件夹不由settings.json控制,而是由启动方式决定:双击图标取决于快捷方式参数,终端执行code命令则打开当前目录,右键菜单打开所选路径,直接运行可执行文件则恢复上次状态。

VSCode 启动时默认打开哪个文件夹,根本不由 settings.json 控制
它不读取 settings.json 里的任何路径配置来决定初始打开位置。所谓“记住上次路径”,本质是窗口状态缓存,不是可配置的默认值。你翻遍设置界面或 JSON 文件,都找不到一个叫 “defaultFolder” 或 “startupPath” 的选项——因为这个功能压根不存在。
真正起作用的是你「怎么启动 VS Code」
启动方式决定了打开路径,没有例外:
- 双击桌面图标 / 开始菜单快捷方式 → 路径由该快捷方式的
Target(Windows)或 AppleScript 参数(macOS)决定 - 终端里运行
code命令 → 总是打开当前目录(.),不是“默认路径”,只是忠实地执行cd . && code - 右键菜单选 “Open with Code” → 路径就是你右键的那个文件或文件夹
- 直接双击
Code.exe或Visual Studio Code.app→ 若无历史记录,开空窗口;否则恢复上次关闭时的状态
想让双击图标固定打开某文件夹?改快捷方式参数
这是最稳定、最可控的方式,且无需装插件或改 shell 配置:
- Windows:右键快捷方式 → “属性” → 在
Target末尾加一个空格和路径,例如:"C:\Users\Me\AppData\Local\Programs\Microsoft VS Code\Code.exe" "D:\my-projects" - macOS:Dock 图标无法直改,需新建 AppleScript 应用,内容为:
do shell script "open -n -b 'com.microsoft.VSCode' --args '/Users/you/my-projects'",然后拖进 Dock 替代原图标 - Linux:编辑
~/.local/share/applications/code.desktop或/usr/share/applications/code.desktop,在Exec=行末尾加空格和路径,例如:Exec=/usr/bin/code --no-sandbox "/home/user/my-projects"
别被 files.dialog.defaultPath 坑了
这个实验性设置确实存在,但它只影响「打开文件夹」对话框弹出时的初始定位,不是启动行为。而且效果不稳定,尤其在 macOS 和某些 Linux 桌面环境下常失效。它不改变双击图标、code 命令、右键菜单等任何实际启动路径——只是对话框里那个小箭头一开始指哪而已。
真正容易被忽略的是:VS Code 没有“默认打开文件夹”这个概念,只有“启动上下文”。想让它每次点图标都进同一个地方,就得控制入口;指望改个配置就一劳永逸,只会反复碰壁。


















