vscode报“找不到文件”90%因工作目录或排除规则配置错误:调试需在子项目.launch.json中设"cwd": "${filedirname}";search.exclude和files.exclude会隐藏文件;多根工作区各子项配置独立,须逐一核对。

VSCode报“找不到文件”,90%不是文件真丢了,而是它压根没在你预期的位置找——根源在工作目录(cwd)、排除规则(search.exclude/files.exclude)或配置作用域错位。
launch.json 没配 cwd,调试必失败
你在 src/utils/main.py 里写 open("config.json"),但调试器却以用户主目录或工作区根目录为起点,自然报 FileNotFoundError。
-
launch.json必须显式声明"cwd": "${fileDirname}"(脚本所在目录)或"cwd": "${workspaceFolder}"(项目根目录),不能依赖默认值 - 这个
launch.json必须放在子项目自己的.vscode/下,比如backend/.vscode/launch.json;放错位置(如只放在工作区根目录)会导致配置不生效 - 别写
"cwd": "./backend"或"cwd": "../config"—— VSCode 不解析这种相对路径,会静默忽略 - Windows 上用
gdb.exe调试 C++ 时,miDebuggerPath也必须是绝对路径,例如"C:/MinGW/bin/gdb.exe"
search.exclude 和 files.exclude 会彻底隐藏文件
你 Ctrl+Shift+F 搜不到代码?资源管理器里看不到某个子目录?不是 VSCode 崩了,是它被规则拦住了。
- 打开搜索面板右下角的
!图标,点掉「使用排除规则」后能搜到 → 就是search.exclude在作怪 -
search.exclude中宽泛规则如"**/*.js": true或"src/**": true极易误伤,推荐只用"**/node_modules/**": true -
files.exclude不仅影响左侧文件树显示,某些扩展(如 WSL 插件)还会因此跳过监听该路径下的变更 - Git 项目若启用了
"search.useIgnoreFiles": true,.gitignore里的路径也会被自动排除
多根工作区下,各子项配置相互独立
你改了根目录的 settings.json,但 frontend/ 子项目还是找不到 api.ts?因为它的 .vscode/settings.json 是单独生效的。
- 每个子文件夹的
.vscode/目录都拥有独立的launch.json、settings.json和c_cpp_properties.json - 检查
.code-workspace文件中folders数组的path字段是否仍指向已移动/重命名/删除的目录 - 跨子项目调试(如前端调后端 API)需用
"cwd": "${workspaceFolder:server}",前提是.code-workspace里已定义了"name": "server" - 单文件模式(双击打开 .py 文件而非 File > Open Folder)下,
cwd默认是用户主目录,极不可靠,应避免
c_cpp_properties.json 的 includePath 写错,头文件就“消失”
C/C++ 插件提示“找不到头文件”,但代码能编译通过?这是 IntelliSense 路径没对齐,和编译器无关。
-
includePath必须是绝对路径或含${workspaceFolder}的合法变量表达式,不支持./include这类相对路径 - 系统头路径要显式加上,例如 Ubuntu 上加
/usr/include/c++/11,macOS M1 + Homebrew LLVM 加/opt/homebrew/opt/llvm/include/c++/v1 - 第三方库路径要指向包含头文件的父目录,比如 OpenCV 应填
/usr/include/opencv4,而不是/usr/include/opencv4/opencv2 - 删掉所有带
*的路径(如/usr/include/c++/*),VS Code 不识别;也别漏掉${workspaceFolder}前缀
最常被忽略的是:多根工作区里每个子项目的 .vscode/ 都得单独检查,而不是只改一个地方就以为全好了。路径配置一旦错位,VSCode 不会报错,只会安静地“看不见”。











