I can see Bruce's code as potentially useful, and thank him for that. After 8 years, the link in Sean's post is broken. Is Bruce's code still valid for version 11.6?
I suspect that many, such as myself use Mathematica because it is a high level notation that enables one to write code pertaining to things like language, geography, or mathematics. We want a system that runs smoothly and doesn't require us to get our hands dirty with even mid-level code for the operating system and file paths. Granted that Mathematica notebooks are complex and probably hard for the front end programmers to get just right, but a restore function should at least work within the notebook being restored. One should not have to create a separate notebook to define the restore function and then figure out a file path and run it, though I see that one could probably avoid that by putting the restore function in the same folder with the corrupted file. Even better, Restore could be a menu choice.
I write this as one who often encounters corrupted files that display poorly as .pdf files. This happens less often when I use only the default font in the default size, but I still have problems in version 11.6, especially with squares and square roots in Text cells, and quotients often break down into linear text with slashes for the quotient divider. Perhaps Mathematica should automatically run a restore function before every save or print to .pdf.