现在有一个问题,就是在我写文件的时候如果出现意外断电的情况,文件大小是被修改了,但是文件内容丢失。
我已经采用了先写一个临时文件,而不修改已有文件,已保证下一次打开时文件内容存在。
可是还会出现意外断电后内容丢失的现象。看看大家有没有好的建议。

解决方案 »

  1.   

    写文件时,先分块,然后建立记录文件
    比如有个文件要写入,那么先建立一个记录文件,记录下这个文件的大小,分块信息,假设分5块,然后置5个标志位flag[]
    然后在一块传输完之后,将flag[i]置为1,标志这块传完了
    那么你在传第3块的时候,断电了。
    开机的时候去检查记录文件,发现flag[2]是1,但是flag[3]是0,那么就开始重传第3块
    还有,就是采用逐块合并,比如传第3块的时候,对1和2块进行合并,这样可以减少损失。
      

  2.   

    楼主的方法很好.
    文件A, B 作为备份. 只写入B.
    B写成功后, B改名为A, 复制A为B.
    B写入不成功, 删B, 复制A为B.哈哈..比较浪费资源.但能保证成功.
      

  3.   

    与其考虑算法,不如添硬件。UPS方案最好。
      

  4.   


    其实你说的很有道理。。
    不过从我的软件是用来看添加硬件或者ups不太可能了
    只能保证断电的时候不会出现写入配置的情况了