vs code 不支持同时打开多个独立窗口的文件夹,而是通过“添加文件夹到工作区”将多个文件夹作为根目录纳入同一 .code-workspace 文件统一管理;直接拖入或双击多个文件夹仅生效最后一个,正确方式是使用菜单、命令面板或 code --add 命令追加,且需确保已有实例运行。

VS Code 打开多个文件夹时,实际是「添加文件夹到工作区」
VS Code 不支持传统意义上的“同时打开多个独立窗口的文件夹”——它默认以单个工作区(workspace)为单位管理项目。所谓“多个文件夹”,本质是把它们作为根文件夹加入同一个 .code-workspace 文件中。直接双击多个文件夹或拖入窗口,只会依次覆盖当前窗口,不是真正并行加载。
实操建议:
- 用菜单:点击 文件 → 将文件夹添加到工作区…,可反复添加多个文件夹
- 用命令面板:
Ctrl+Shift+P(Win/Linux)或Cmd+Shift+P(Mac),输入Add Folder to Workspace,回车执行 - 添加后,左侧资源管理器会显示所有根文件夹,彼此隔离,路径不嵌套
- 此时保存工作区:
文件 → 另存为工作区…,生成一个.code-workspace文件,下次双击它就能还原全部文件夹
为什么不能直接拖多个文件夹进窗口?
这是 VS Code 的设计限制:启动时只接受第一个参数作为打开目标;后续拖入的文件夹会被忽略,或触发“替换当前文件夹”行为(取决于设置和版本)。你看到的“似乎打开了”,大概率只是最后一个生效了。
常见错误现象:
- 拖入 A、B、C 三个文件夹,松手后只显示 C 的内容
- 终端里执行
code /path/A /path/B,只有 A 被加载 - 从文件管理器多选后右键“在 VS Code 中打开”,结果只开一个
根本原因:VS Code 启动参数解析逻辑只取首个路径,其余被丢弃。想批量加载,必须走工作区机制。
code --add 命令才是正确打开多个文件夹的方式
VS Code 提供了专用 CLI 参数 --add,用于向当前窗口追加文件夹(而非替换)。它只在已有窗口运行时有效,是唯一能绕过 UI 限制的可靠方法。
技术上面应用了三层结构,AJAX框架,URL重写等基础的开发。并用了动软的代码生成器及数据访问类,加进了一些自己用到的小功能,算是整理了一些自己的操作类。系统设计上面说不出用什么模式,大体设计是后台分两级分类,设置好一级之后,再设置二级并选择栏目类型,如内容,列表,上传文件,新窗口等。这样就可以生成无限多个二级分类,也就是网站栏目。对于扩展性来说,如果有新的需求可以直接加一个栏目类型并新加功能操作
使用场景:
- 已打开 VS Code 窗口,想从终端快速加个新文件夹
- 写脚本批量组织项目结构
- 避免反复点菜单
示例:
code --add /path/project-a --add /path/project-b
注意:
- 必须先有 VS Code 实例在运行,否则
--add无效(会退回到默认启动行为) - 不支持 Windows PowerShell 默认配置下的路径空格处理,建议用引号包裹路径:
code --add "/path/my project" - macOS 上需确保
code命令已通过 VS Code 的“Shell Command: Install 'code' command in PATH”启用
工作区里多个文件夹的配置和扩展行为容易被忽略
每个根文件夹可拥有独立的 .vscode/settings.json,但工作区级设置(.code-workspace 里的 settings 字段)会全局生效。扩展启用状态也分层级:有些扩展按工作区激活,有些按文件夹激活,比如 eslint 或 prettier 可能因文件夹内缺少配置而静默失效。
容易踩的坑:
- 在一个文件夹里装了
Python扩展并配置了解释器,另一个同工作区的文件夹不会自动继承——得各自配python.defaultInterpreterPath - 搜索(
Ctrl+Shift+F)默认跨所有根文件夹,但若某文件夹过大,可能卡顿甚至被跳过;可在搜索框右上角点击文件夹图标手动勾选范围 - 调试配置(
.vscode/launch.json)放在工作区根目录下才对全部文件夹有效;若放在某个子文件夹里,则仅对该文件夹生效
复杂点在于:没有统一的“文件夹作用域开关”,一切依赖你主动识别当前编辑的是哪个根下的文件,并检查对应位置的 .vscode 配置是否存在、是否被工作区设置覆盖。









