zoukankan      html  css  js  c++  java
  • 电脑突然断电,代码文件损坏,如何恢复,求解

    情况:

    vs2015开发wpf程序,程序已编译,即文件已经保存,电脑突然断电,一个cs文件内容被清空,但大小与原来的一样。

    解决及问题:

    • 1、 网络查找“相似问题”

    有很多人遇到此类问题,,回答的人都在扯,都在说没保存的问题,什么要记得ctrl+s,这帮都是问题都看不清的自以为是的那啥。看得那疼。。。。

    • 2、 使用文本文件恢复工具,找了一个叫File Repair的软件,说的好听,但没效果,另外还有其他的一些恢复工具,没有去试,我以前搞过磁盘恢复,那些挺耗时的,而且也不保证能够恢复,那些恢复软件原理就是依赖你的磁盘的某一个区域没有格式化。

    【据我了解,磁盘恢复就相当于,一般的删除文件只是把指向这个文件的索引删除,但那个文件其实还在,只是系统没有索引指向它,而恢复工具,就是从磁盘上找到这块内容,重新给他加上索引】
    例如:文件在磁盘上存储的是010101,一般的删除,磁盘上还是010101,所以恢复工具找到它就可以恢复,而如果被覆盖为111101 or 低格为000000,那谁都木有办法恢复了。

    • 3、 鉴于上面提到的文本文件恢复工具,自己决定看下损坏文件的内容,利用16进制查看工具Hex Workshop Hex Editor查看文件内容,发现内容被全部置为0,即内容是真的清空了 —— 一开始yy想法是:要是单纯某些字节损坏,或许修改某些字节,还可能恢复。

    • 4、 最终解决方案:

      • 1、由于个人在开发时,习惯本地用git进行版本控制,故有一些历史记录可以用,先用最近的历史记录进行恢复,但缺失最新【未提交】的内容。
      • 2、打开ILSpy工具(.net 反编译工具),找到编译过的程序,然后找到对应文件的反编译内容,在.net中,反编译的代码与原始代码一致性还是比较高的,故可以利用这一点,获得最新的一部分代码。
    • 5、 仍然存在的问题:开发中,常常因为尝试步骤比较多,所以会有大量的注释代码,但这些临时注释代码并不是无用的,而反编译的代码中不会有注释代码,所以,最后获得的代码,仍然有缺失,无法找回。

    故,为了以后再次遇到此类情况,及时求解:大家有啥好方法,可以恢复这些损坏的文件,拿出来一起分享下。
    or 聊聊是什么机制导致断电将文件编码全置0
    or 吐槽下自己遇到的类似经历

    扯:奇葩史

  • 相关阅读:
    java虚拟机-内存的分配
    java-类的多态和多重继承
    java 设计模式-策略模式
    java-线程介绍和基本使用
    java 数据流操作
    java basic
    JAVA连载117-反射的应用与打破封装新
    C连载2-编译过程以及语言历史概览
    Android连载12-完善新闻app内容区域
    JavaScript连载11-Switch
  • 原文地址:https://www.cnblogs.com/huaxia283611/p/damage-code-file-repair.html
Copyright © 2011-2022 走看看