从Visual Studio文档缓存中恢复文件?

40

我刚刚丢失了一些代码。我需要将一些方法从一个类移动到另一个类,所以我保存了文件,剪切了这些方法,结果 Visual Studio 崩溃了。现在看起来好像是剪切完之后才保存的文件,因为代码已经被保存但是这些方法不在我的剪贴板上了。所以现在我没有代码了,也没有简单的方法来恢复它!

我知道 Visual Studio 会保留文档缓存,当出现文件还原对话框时会使用它,但当 VS 重新启动时并没有显示出来。我希望能够找到包含这些代码的类的版本,这样我就不必重新开始了,但我不知道在哪里找。

有人能告诉我 VS 将这些文件保存在哪个磁盘上吗?

非常感激你能提供任何帮助。

10个回答

80

已经排好序了。恢复文件位于“MyDocuments\Visual Studio X\Backup Files\Project Name...”


3
还有一个需要注意的地方(至少在2010版本中),就是恢复的文件和原始文件在同一个文件夹中。我曾经遇到过一个损坏的“恢复”文件,差点让我丢失两天的工作(但实际上原始文件是最新的……)。 - Stephen
18
你是否需要启用这个功能?我的文件夹版本是空的。 - Brian Sweeney
1
这个选项在Visual Studio 2017中可用,但在Visual Studio 2019中不可用。 - Evorlor
1
@BrianSweeney 我相信这个文件夹在最新版本中已经移动了。下面的答案现在有正确的文件夹路径:https://dev59.com/FHNA5IYBdhLWcg3wmfIa#59277526 - pbristow
在我之前的评论中,我说错了。恢复是在 SSMS 中进行的,而不是 SSIS。这可能解释了为什么文件在 VS2017 而不是 VS2019 中。 - spinjector
显示剩余2条评论

59

Visual Studio 2019.4.1将我的备份文件存放在 %localappdata%\Microsoft\VisualStudio\BackupFiles 目录下,而在“我的文档”树中的文件夹是空的。


3
谢谢@CAD bloke,你救了我的命。Vs2019在恢复为Original-$datetime$filename.cs和已损坏的恢复文件之前会将文件保存两次,然后我恢复了原始文件并还原了未提交的工作。 - M.Hassan
1
VS2019没有自动恢复我的代码,但我能够深入查找树形结构并找到我的代码。节省了2小时! - Hucker
1
谢谢你,你救了我的命。每次我允许Visual Studio为我恢复一些数据时,它都会把事情搞得无法挽回。但这一次它破坏了几天的工作,我无法忍受,尝试反编译、搜索、隐藏文件等任何方法,最终你帮我节省了时间。谢谢。 - Hassan Faghihi
2
当Visual Studio备份恢复清空一个非常重要的文件时,你拯救了我,让我避免了一次心脏病发作。我将永远感谢你! - Brixster
2
兄弟,你救了我一命! - SexyBeast
显示剩余9条评论

13
如果你已经将代码编译成DLL文件,那么你可以使用ILSpy或Reflector来将其反编译成代码。

是的,我们还可以看到“obj”文件夹中缓存的二进制文件。 - Gray Programmerz
先生,您是一个真正的英雄。 - undefined

8

在我的情况下,这是最简单的解决方案,而且适用于VS 2017。 - Anthony Griggs
你真的救了我! - GRASBOCK

3

其实很简单。在VS Code中打开命令面板,方法是按下Ctrl Shift P(Mac上为cmd Shift P),然后搜索“本地历史记录”,您应该会看到还原条目……然后弹出一个窗口选择要还原的文件,您将在那里看到代码。


1
这个问题是关于Visual Studio,而不是VS Code。 - Andrew
我来这里是为了寻求VSCode的帮助,所以谢谢! - undefined

2

这是VS中已知的一个错误,微软一直忽略它。由于这个问题,我已经失去了整整一天的工作时间。对我有效的解决方案是将我的项目移到GoogleDrive同步文件夹中。现在每次保存文件时,Google Drive会将一个副本同步到云端。除了定期提交到Git之外,我再也不必担心丢失工作了。叹气。


2

对于Linux系统,备份文件的位置似乎是~/.config/Code/Backups/。

(在此处找到了相关信息:https://github.com/Microsoft/vscode/issues/3884

祝您好运,未来的旅行者!我很幸运能够找回我的文件!


好的,Farhan。 - EightyOne Unite

1

现在它对你没有帮助,但是你可能想安装ClipX,它可以帮助你保留尽可能多的剪贴板项目。在崩溃发生时,它曾经帮助过我,因为之前剪贴板上有一个版本。


0

对于那些在删除文件并使用Visual Studio(我的情况是2019专业版)后仍然无法解决问题的人,我设法在以下位置找到了一些智能感知备份:

%appdata%\Local\Temp\VSFeedbackIntelliCodeLogs\Suggestions\XXX\output\versions

其中XXXX是您在删除文件时最接近的时间。

我的一个缺失文件完整地存在于其中,另一个确实有一些缺失部分,但这比没有好多了。


0

在 Ubuntu 18.04 上运行,使用 VS Code 1.51.0

我的 VS Code 删除的文件位于:~/.local/share/Trash/files

要搜索您删除的文件:

find ~/.local/share/Trash/files -name your_file_name 

希望我的案例能够帮到你!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接