删掉 files.exclude 规则后文件仍不显示,主因是 VS Code 缓存未刷新;需执行 Developer: Reload Window 刷新窗口,并检查用户级/工作区级设置覆盖、路径分隔符、系统权限及扩展干扰。

files.exclude 里删掉规则,文件还是不显示?
删掉 files.exclude 中的 **/*.exe 或其他条目后,文件仍不出现在资源管理器中,大概率不是配置没生效,而是 VS Code 缓存了旧的排除状态。它不会自动重刷整个文件树,尤其在大项目里更明显。
实操建议:
- 按
Ctrl+Shift+P打开命令面板,输入并执行Developer: Reload Window—— 这是最直接的刷新方式,比单纯重启更快 - 如果刚删的是整个
files.exclude对象(比如清空了"files.exclude": {}),确认该字段本身还存在;若整行被删了,VS Code 会回退到用户级默认值(含"**/node_modules": true等),看似清空,实则没真清 - 检查是否在多根工作区(multi-root workspace)下操作:你改的是当前工作区
.vscode/settings.json,但文件实际属于另一个根目录,那个根目录的设置可能还在生效
为什么改了 settings.json 却没反应?
VS Code 的 files.exclude 有三级作用域:用户级 → 工作区级 → 文件夹级(.vscode/settings.json)。你编辑的文件可能被更高优先级的设置覆盖。例如,你在项目根目录改了 .vscode/settings.json,但全局用户设置里仍有 "**/*.exe": true,那它依然生效。
排查步骤:
- 在设置界面(
Ctrl+,)右上角切换到User标签页,搜索files.exclude,看是否有残留规则 - 打开命令面板,运行
Preferences: Open Settings (JSON),对比打开的两个 JSON 文件(用户级和工作区级),逐行确认哪一处真正启用了排除 - Windows/macOS 下注意路径分隔符:必须用正斜杠
/,写成**\*.exe会被完全忽略,不报错也不生效
恢复显示后,某些文件仍“隐形”?
即使 files.exclude 清空且窗口重载,仍有文件不出现,常见于以下情况:
-
.gitignore里的条目不影响资源管理器显示,但如果你装了 GitLens 或类似扩展,它可能主动隐藏被 git 忽略的文件(这不是 VS Code 默认行为,而是扩展干预) - macOS Sequoia 后系统级磁盘权限收紧,VS Code 若未被授予“完全磁盘访问”权限,某些目录下的文件即使没被排除,也可能根本读不到——去系统设置 > 隐私与安全性 > 完全磁盘访问,勾选 VS Code
- 文件名含 Unicode 控制字符、不可见空格或 BOM,VS Code 解析失败导致跳过渲染(少见但真实存在,可用
ls -b或 PowerShellGet-ChildItem -Force验证)
临时想看一眼被排除的文件,又不想动配置?
不需要改任何设置,也能立刻让所有文件现身:
- 按
Ctrl+P(快速打开),输入>触发命令面板,执行Files: Reveal in Explorer,然后手动粘贴完整路径(支持相对路径如./build/app.exe) - 右键资源管理器空白处 →
Reveal Active File in Side Bar,适用于已打开但不在侧边栏显示的文件 - 终端里直接用
code ./path/to/file.exe命令打开,VS Code 会强制加载并高亮它,哪怕它被files.exclude拦截过
真正容易被忽略的是:files.exclude 只控制资源管理器,和搜索、调试、终端执行完全无关;但很多人误以为“看不见 = 不存在”,结果在终端里照常运行 .exe,却奇怪为什么 Ctrl+P 找不到它——这两套机制压根不共享状态。


















