VSCode多级文件夹显示_将紧凑目录结构展开的设置
Compact Folders 是 VSCode 默认启用的折叠优化功能,将子文件夹与父文件夹平铺显示(如 src 与 src/components 并列),用斜杠模拟嵌套以节省空间;关闭后恢复标准树形结构,支持真正折叠/展开和 Ctrl+Click 递归展开。 Compact Folders 是什
Compact Folders 是 VSCode 默认启用的折叠优化功能,将子文件夹与父文件夹平铺显示(如 src 与 src/components 并列),用斜杠模拟嵌套以节省空间;关闭后恢复标准树形结构,支持真正折叠/展开和 Ctrl+Click 递归展开。

Compact Folders 是什么,为什么它会让文件夹“挤成一行”
如果你发现 VSCode 侧边栏里的文件夹结构看起来有点“扁平”,src 和 src/components 竟然肩并肩排在一起,中间只用一个斜杠隔开——别担心,这不是出了什么 bug。这正是 VSCode 默认开启的 Compact Folders 功能在起作用。它的设计初衷很明确:通过这种“伪嵌套”的平铺显示,最大限度地为代码编辑区节省出宝贵的侧边栏空间。
然而,对于大多数开发者而言,这种节省空间的代价有点高。直观的层级关系消失了,你想点击三角图标来折叠或展开子文件夹?对不起,操作不了。习惯用 Ctrl+Click(或 Cmd+Click)来递归展开一整条路径?同样会失效。原因很简单,在紧凑模式下,那些子节点在底层根本没有被渲染成可折叠的独立项。
所以,关闭这个功能之后,你会立刻看到变化:src 终于作为一个独立的父节点出现了,旁边出现了熟悉的三角图标。点击它,components、utils 这些子文件夹才会乖乖显示出来。这才是符合我们思维习惯的、真正的树形结构。
如何关闭 Compact Folders 设置
关闭的方法其实非常直接,通过修改设置就能搞定:
- 首先,打开 VSCode 的设置页面(快捷键是
Ctrl+,或Cmd+,)。 - 接着,在搜索框里输入
compact folders。 - 最后,找到
Explorer > Compact Folders这个选项,取消它的勾选状态。
这个操作实际上会更新你的 settings.json 配置文件(可能是用户全局的,也可能是当前工作区特定的),添加或修改如下一行:
{"explorer.compactFolders": false}
需要提醒一点:Compact Folders 是一个全局开关,VSCode 没有为它提供路径白名单功能。也就是说,一旦关闭,整个资源管理器视图中的所有文件夹,包括你已经添加到工作区的多个根目录,都会统一恢复为标准树形展开的逻辑。
关闭后仍显示紧凑?检查这几个地方
有时候,明明已经关掉了 Compact Folders,但目录结构看起来还是不够“舒展”。这通常不是设置没生效,而是其他配置或环境因素在干扰渲染结果。以下几个地方值得重点排查:
- 文件嵌套功能:检查设置
explorer.fileNesting.enabled是否为true。这个功能优先级很高,它会根据规则(比如把xxx.component.ts和xxx.component.html视为一组)将文件收进同一个父节点下。如果它生效了,即使compactFolders已关闭,相关区域看起来也可能像是没有完全展开。 - 主题或插件冲突:某些深度定制的主题或者安装了能修改 CSS 的插件,可能会强制重写资源管理器的样式,导致折叠图标不显示或者缩进异常。
- VSCode 版本:如果你使用的 VSCode 版本低于 1.86,那么上述的
fileNesting功能并不存在,但compactFolders的行为逻辑是一致的。考虑升级到较新版本,通常能获得更稳定的文件树行为。 - 路径特殊字符:在多根工作区中,如果某个根目录的路径包含空格或中文字符等 Unicode 字符,在极少数情况下可能会引发 Explorer 渲染异常。可以尝试临时将文件夹名称改为纯 ASCII 字符来验证是否为此问题。
展开后怎么保持状态不重置
解决了显示问题,下一个痛点来了:VSCode 本身并不“记忆”文件夹的展开状态。关闭 Compact Folders 只是让结构变得可以展开,并不意味着你这次展开的文件夹,下次启动 VSCode 时还会自动保持打开。
要想实现展开状态的持久化,目前靠谱的方案主要是两个:
- 借助插件:安装像
Restore Tree State这样的插件。它是目前社区里为数不多、且持续维护的专门解决此问题的方案。 - 手动习惯:养成一个手动触发的习惯。在每次关闭 VSCode 或离开项目前,对你最常工作的那个根文件夹(比如
src)使用Ctrl+Click(Windows/Linux)或Cmd+Click(macOS)进行点击。VSCode 会在其WorkspaceStorage中记录这个路径,只要文件夹结构不变,下次启动时会尝试还原到这一层的展开状态。
最后,有两个常见的误解需要澄清:别指望通过修改 workbench.tree.expandMode(它只控制单击还是双击触发展开)或者开启 files.autoSa ve(这完全是文件保存行为)来解决文件夹状态的记忆问题——它们跟这个需求完全不相关。


































