2012-01-31 50 views
0

如果在XmlDocument.Save()方法中應用程序崩潰會發生什麼情況?.net在碰撞情況下安全保存到Xml文件

例如,我將一些巨大的信息保存到Xml文件中。應用程序崩潰和文件的xml格式變得不正確,不能再次加載。如何預防它?

另外,該應用程序的設置文件呢?有效性是否會被破壞如果應用程序在保存設置文件時崩潰?

回答

0

如果應用程序在保存設置文件時崩潰,則該文件將不再有效。對於一個小的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下和了,Atomic file copy under .NET可用事務NTFS, Atomicity of File.Move
  2. 使用臨時文件保存信息,然後使用重命名安全替換舊文件
相關問題