Я использую ускоренную серилизацию для сохранения данных в виде файла DAT.
void saveArchive(const QModelIndex & RootIndex, TreeModel * myModel , Stage& stage , const std::string &stdstrFilePath)
{
const char* fileName = stdstrFilePath.c_str();
std::ofstream ofs(fileName);
boost::archive::text_oarchive ar(ofs);
// First save the Stage
ar & stage;
iterate(RootIndex, ar, myModel); // Save other data in the tree structure also
}
Сначала я открываю существующий путь через текстовое расширение boost и сериализую данные.
при сохранении из-за любая причина, если программа дает сбой, чем файл данных, который я открыл, становится поврежденным и не может быть открыт снова.
я могу подумать о том, чтобы сохранить временный файл и перезаписать этот файл по пути.
Есть ли у нас какие-либо опции в расширенной сериализации, которые мы можем гарантировать, что файл правильно сохранен и чем перезаписать файл?