0
我的問題涉及一個XmlWriter將元素附加到一個大的XML文件。我已經通過從任務管理器中殺死進程來測試它,結果如預期的那樣 - 最後一行只是部分寫入,元素中的文本剛剛結束並且沒有結束標記。如何確保最後一個元素或最後幾個元素是完全寫入或不是事務樣式,以防發生外部事件(系統崩潰,關閉)。如果StreamWriter或XmlWriter突然終止,文件會發生什麼變化?
我的問題涉及一個XmlWriter將元素附加到一個大的XML文件。我已經通過從任務管理器中殺死進程來測試它,結果如預期的那樣 - 最後一行只是部分寫入,元素中的文本剛剛結束並且沒有結束標記。如何確保最後一個元素或最後幾個元素是完全寫入或不是事務樣式,以防發生外部事件(系統崩潰,關閉)。如果StreamWriter或XmlWriter突然終止,文件會發生什麼變化?
將文件寫入系統臨時文件夾或任何臨時位置。文件寫入完成後,使用系統命令複製到目標位置。
結果:
我)如果系統abrupts而寫在臨時位置的文件,文件只存在於可以一次應用程序被重新啓動被刪除臨時文件夾。 ii)如果系統在系統複製過程中崩潰,系統會處理以恢復或刪除未完全複製的文件。
因此,用戶不會在目標文件夾中找到不完整的文件。