files.exclude 不支持绝对路径,仅接受相对于工作区根目录的 glob 模式;若要隐藏 C:ooardist,须将 C:ooar 设为工作区并在 settings.json 中配置 "**/dist": true。

files.exclude 不支持绝对路径,这是根本限制
files.exclude 的设计就是只认相对于工作区根目录的 glob 模式,它压根不解析绝对路径。你写 "C:/project/node_modules": true 或 "/home/user/project/dist": true,VS Code 会直接忽略这条规则——既不报错,也不生效,文件照常显示。
想隐藏绝对路径下的内容,必须把那个路径变成工作区
VS Code 只能对“当前打开的工作区”做 files.exclude 过滤。所以如果你真要隐藏 C:ooardist,唯一可靠的做法是:
- 用 VS Code **直接打开
C:ooar这个文件夹**(而不是它的父级或子级) - 在该工作区的
.vscode/settings.json中配置"**/dist": true - 确保没有其他同名规则(比如
"dist": true)干扰匹配顺序
这样 **/dist 才能正确匹配到 C:ooardist。如果工作区是 C:oo,那 **/dist 匹配的是 C:oo*dist,不会命中 C:ooardist —— 因为 bar 是第一层子目录,**/ 需要至少一层通配才能到达。
绝对路径需求通常暴露了工作区结构问题
硬要按绝对路径隐藏,往往说明你正在跨多个物理位置协作,或者项目被拆得过散。这时更合理的做法是:
- 用多根工作区(
code .code-workspace)把相关路径都纳入同一视图,再分别配files.exclude - 把需要隐藏的目录软链接进当前工作区(Windows 用
mklink,macOS/Linux 用ln -s),然后对链接名写规则,例如"vendor-dist": true - 接受现实:VS Code 不是文件管理器,它不负责操作系统级的“隐藏”,只做工作区内的视觉过滤
试图绕过工作区约束去操作绝对路径,最后大概率会遇到规则不生效、重启无效、或影响其他项目的连锁反应。
别碰 search.exclude 来凑数
search.exclude 同样不支持绝对路径,而且它只管搜索结果,对资源管理器毫无影响。有人试过写 "C:\foo\bar\dist": true 到 search.exclude,发现搜索里确实不出了,但资源管理器里还杵着——这不是 bug,是设计如此。两个配置项都严格遵循“相对工作区根”的语义,没商量余地。
真正容易被忽略的点是:VS Code 从不校验你写的路径是否存在或是否合法,错写成绝对路径只会静默失效,连警告都没有。











