Есть ли так или иначе другой процесс, контролирующий для файлов, созданных с помощью XMLDocument. Сохраните (), мог встретиться с частичным файлом? Это имеет какое-либо значение, если Сохраняют (), действительно ли перезапись является существующим файлом?
Я не думаю, что есть гарантия атомарности. Вы не должны зависеть от этого.
Если вы сохраните так, у вас не должно быть никаких проблемы.
using (var file = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.Write, FileShare.None))
{
xmlDoc.Save(file);
}
Запись файлов, как правило, не атомарна. Ознакомьтесь с Process Monitor , чтобы получить представление о том, что предоставляет ОС.
XmlDocument.Save (строка) использует FileShare.Read . Решение ChaosPandion указывает FileShare.None . Проверьте System.IO.FileShare на MSDN, чтобы узнать разницу.