VSCode默认不支持同时打开多个独立文件夹,需通过创建.code-workspace工作区文件实现多文件夹并存;该JSON文件需手动新建、配置相对路径,并保存后生效。

VSCode 打开多个文件夹却只显示一个?这是工作区没生效
VSCode 默认不支持“同时打开多个独立文件夹”——你拖进去的第二个文件夹,会直接替换掉第一个。真正能并存多个文件夹的,是 工作区(.code-workspace) 文件。它不是界面操作开关,而是一个 JSON 配置文件,必须显式创建和保存。
怎么创建一个真正的多文件夹工作区?
手动创建 .code-workspace 文件是最可靠的方式,比菜单里点“添加文件夹到工作区”更可控,也避免误操作覆盖已有配置。
- 在任意位置新建一个空文件,命名为
my-project.code-workspace - 用 VSCode 打开它,里面默认是空 JSON,填入类似结构:
{
"folders": [
{ "path": "../backend" },
{ "path": "../frontend" },
{ "path": "../shared-utils" }
],
"settings": {
"editor.tabSize": 2
}
}
注意:path 是相对于该 .code-workspace 文件所在目录的相对路径,不是绝对路径;路径不能以 / 或 C:\ 开头,否则 VSCode 会静默忽略该条目。
为什么“添加文件夹到工作区”有时失效或行为异常?
这个菜单项只在当前已打开的是一个工作区(即已打开 .code-workspace 文件)时才有效。如果当前窗口只是打开了单个文件夹,点击它会触发“将当前文件夹转为工作区”,并把新文件夹加进去——但旧文件夹会被移除,变成仅保留两个文件夹,容易误以为“丢了项目”。
- 常见错误现象:
Cannot add folder to workspace: Workspace is not saved—— 这说明你还没保存过工作区文件,VSCode 拒绝写入未持久化的配置 - 添加后文件树没刷新?按
Ctrl+R(Windows/Linux)或Cmd+R(macOS)强制重载窗口 -
folders数组顺序决定侧边栏中文件夹的排列顺序,调整数组位置即可改变显示顺序
工作区配置会影响扩展、调试和终端行为吗?
会,而且影响很实际:每个工作区可独立设置 settings、extensions(推荐扩展)、launch.json 和 tasks.json。比如你在 backend 里装了 Python 插件,在 frontend 里装了 ESLint,它们不会互相干扰。
- 调试器只会读取工作区根目录下的
.vscode/launch.json,不是每个文件夹都搜一遍 - 终端默认工作目录是第一个
folders[0].path,不是当前打开的文件所在文件夹 - 某些扩展(如 Prettier、GitLens)会按工作区级配置生效,跨文件夹时要注意
settings里是否用了相对路径或通配符
最常被忽略的一点:工作区文件本身没有“锁定”机制,多人协作时若手改了 folders 路径,其他人拉代码后路径不存在,VSCode 就会静默跳过那个条目——看起来像“少了一个项目”,其实只是路径断了。建议用相对路径,并在 README 里注明工作区文件的预期结构。











