Самый распространенный способ сделать это - переименовать исходный файл XML с другим именем.
Простая версия:
If 'file.xml' exists Then
If 'file.xml.bak' exists Then
remove 'file.xml.bak'
Fi
rename 'file.xml' as 'file.xml.bak'
Fi
generate XML to 'file.xml'
Недостаток в этой версии заключается в том, чтоесли после переименования происходит сбой приложения (или системы), при следующем запуске этого приложения может появиться неполное или отсутствующее 'file.xml'
.Вы можете решить эту проблему, если приложение попытается использовать файл резервной копии, если оно обнаружит любой сценарий.
В качестве альтернативы вы можете ввести третий файл;например, получить приложение для генерации 'file.xml.new'
и выполнить переименование ПОСЛЕ записи успешно.Вы все еще должны справиться с отсутствующим 'file.xml'
при некоторых обстоятельствах: это неизбежно, если у вас нет транзакционной файловой системы.Однако окно для сбоя меньше, и вы всегда должны заполнять копии текущих и резервных файлов.