Как избежать повреждения файлов при сохранении с помощью ускоренной сериализации - PullRequest
0 голосов
/ 08 марта 2020

Я использую ускоренную серилизацию для сохранения данных в виде файла 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 и сериализую данные.

при сохранении из-за любая причина, если программа дает сбой, чем файл данных, который я открыл, становится поврежденным и не может быть открыт снова.

я могу подумать о том, чтобы сохранить временный файл и перезаписать этот файл по пути.

Есть ли у нас какие-либо опции в расширенной сериализации, которые мы можем гарантировать, что файл правильно сохранен и чем перезаписать файл?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...