FileFix Ultimate
简体中文

如何在 VS Code 中恢复未保存的文件或消失的 Untitled 标签

Visual Studio Code 有两道保险。Hot Exit 会在 VS Code 关闭或崩溃时,把包括 Untitled-1 在内的未保存编辑器保存在备份文件夹中,通常位于 %APPDATA%\Code\Backups 下。本地历史记录(Local History)会保留已保存文件的旧版本,并显示在时间线视图中。哪一个能帮上忙,取决于文本是否保存过:未保存的工作在 Backups 中,被覆盖的已保存内容在本地历史记录中。

最后更新:

现在该怎么做

  1. 用同一个文件夹或工作区重新打开 VS Code,Hot Exit 通常会自动恢复未保存的编辑器。
  2. 如果标签没有回来,请在再次启动 VS Code 之前复制 Backups 文件夹(通常是 %APPDATA%\Code\Backups)。
  3. 如果是保存后又被覆盖的文件,打开该文件并在时间线视图中查看本地历史记录。
  4. 如果用“不保存”关闭了编辑器,它的备份已被有意删除,可能只有已删除文件扫描才能找到。

操作步骤

  1. 重新打开同一文件夹或工作区

    启动 VS Code,通过“文件”“打开最近的文件”等方式打开之前使用的文件夹或工作区。备份与特定窗口绑定,打开别的文件夹是看不到的。恢复出来的编辑器请立即保存。

  2. 检查 Hot Exit 设置

    打开设置并搜索 files.hotExit。默认值 onExit 会在关闭 VS Code 时保留未保存的编辑器。如果设为 off,未保存内容不会被备份,Backups 文件夹通常也是空的。

  3. 复制 Backups 文件夹

    关闭 VS Code。在文件资源管理器地址栏粘贴 %APPDATA%\Code\Backups,把整个文件夹复制到别处。每个子文件夹对应一个窗口,里面是 Untitled 编辑器和已修改文件的备份。

  4. 安全地读取备份文件

    每个备份文件的第一行是原始路径或 untitled 名称,后面才是你写的内容。用任意文本编辑器打开副本并删掉第一行,或者交给下面的查找工具处理。

  5. 用查找工具收集

    在 FileFix Ultimate 中打开“查找程序崩溃或未保存就关闭时丢失的文件”,点击“查找未保存的文件”。把“程序”筛选设为 Visual Studio Code。条目按原文件名或 Untitled 标签命名,点“复制所选项目”会保存去掉标题行的文本。

  6. 已保存的文件用本地历史记录

    如果你把好的代码保存覆盖了,在 VS Code 中打开该文件,在资源管理器侧栏展开“时间线”,选择较早的本地历史记录条目,与当前版本对比后即可恢复。

Hot Exit 和本地历史记录不是一回事

Hot Exit 针对的是从未保存过的文本。当你退出 VS Code、关闭窗口或程序崩溃时,它会为每个有改动的编辑器写备份,并在下次启动时直接恢复,不询问是否保存。一旦你保存或放弃了编辑器中的修改,备份就会被删除,所以它只在有未保存修改期间存在。

本地历史记录针对的是已保存的文本。每次保存时,VS Code 可以在用户数据文件夹中保留上一版本的副本,通常位于 %APPDATA%\Code\User\History,并在时间线视图中列出。从未保存成文件的 Untitled 编辑器不在其中。

为什么标签有时回不来

备份与窗口的文件夹或工作区绑定。用别的文件夹或空窗口打开 VS Code 时,即使备份还在磁盘上,也什么都不会显示。设置同步、切换配置文件、运行 Insiders 而非稳定版、便携版安装也会使用不同的数据文件夹,例如 Insiders 通常把文件放在 Code - Insiders 文件夹中。

清空 AppData 的清理工具、连用户数据一起删除的重装、用“不保存”关闭编辑器,是备份真正消失的常见原因。在多次尝试重启之前,请先复制 Backups 文件夹。

如果代码在 Git 仓库中

如果项目使用 Git,未提交的修改不在 Git 中,但已提交或 stash 的内容可以从 Git 恢复。请首先查看源代码管理视图和 git stash list。如果删除的源文件从未提交过,剩下的办法就是对磁盘做已删除文件扫描。

无法恢复的情况

  • files.hotExit 设为 off,未保存的编辑器从未写入磁盘。
  • 用“不保存”关闭了编辑器,被删除的备份已被覆盖或被固态硬盘 TRIM 擦除。
  • 清理工具或连设置一起删除的重装删掉了 VS Code 用户数据文件夹。
  • 本地历史记录被关闭,或保留数量上限已删掉你需要的版本。

FileFix Ultimate 能帮什么

  • 以只读方式查找 %APPDATA%\Code\Backups 中的 Hot Exit 备份,同时查找记事本、Notepad++ 和 Office 的恢复文件。
  • 从每个备份中读取原始文件路径或 Untitled 名称,并据此建议文件名。
  • 把去掉备份标题行的纯文本复制到你选择的文件夹。
  • 如果备份已被删除,可用“已删除文件恢复”在 C 盘中查找,并保存到另一块磁盘。
  • 个人使用免费且完全离线,源代码不会离开你的电脑。

FileFix Ultimate 个人使用免费、可离线使用,并且不会向你正在恢复的驱动器写入数据。工作或商业用途需为每台电脑购买一年期许可。运行前请检查签名。

常见问题

VS Code 把未保存的文件存在哪里?

标准安装通常在 %APPDATA%\Code\Backups,每个窗口一个子文件夹。Insiders 和便携版使用各自的数据文件夹,路径可能不同。

VS Code 崩溃后 Untitled 标签还在吗?

如果 files.hotExit 保持默认开启,通常还在。重新打开同一个窗口或工作区,Untitled 编辑器应当会回来。如果没有,请先复制 Backups 文件夹。

本地历史记录能找回 Untitled 文件吗?

不能。本地历史记录记录的是文件保存时的版本。从未保存过的 Untitled 编辑器只存在于 Hot Exit 备份中。

在 VS Code 中怎样找到文件以前保存的版本?

打开文件,在资源管理器侧栏展开“时间线”,选择本地历史记录条目。也可以在命令面板中搜索 Local History,查找多个文件的条目。

分享此页面