【问题标题】:.net Safe saving to Xml file for the case of crashing.net 安全保存到 Xml 文件以防崩溃
【发布时间】:2012-01-31 05:09:08
【问题描述】:

如果应用程序在XmlDocument.Save() 方法期间崩溃会发生什么?

例如,我将一些巨大的信息保存到 Xml 文件中。应用程序崩溃,文件的 xml 格式不正确,无法再次加载。如何预防?

另外,应用程序的设置文件呢?如果应用程序在保存设置文件期间崩溃,有效性会被破坏吗?

【问题讨论】:

    标签: .net xml save


    【解决方案1】:

    如果应用程序在保存设置文件期间崩溃,则该文件将不再有效。对于一个小的 xml 文件,我正在使用下一个代码来防止损坏:

    Using ms As New MemoryStream
       xmlDoc.Save(ms)
       Using outStream As FileStream = File.Open(filename,
                 FileMode.Create, FileAccess.Write, FileShare.Read)
          ms.WriteTo(outStream)
       End Using
    End Using
    

    对于大文件,有不同的方法:

    1. 在 Vista 及更高版本下有可用的事务性 NTFS,Atomic file copy under .NETAtomicity of File.Move
    2. 使用临时文件保存信息,然后使用重命名安全替换旧文件

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多