У меня есть редактор и некоторые файлы открыты. Я делаю некоторые изменения и не сохраняю их. По какой-то причине мое приложение вылетает.
После этого я снова запускаю приложение и хочу, чтобы редактор показывал сообщение вроде: «Система неожиданно завершилась сбоем. В ваших файлах есть изменения, которые не были сохранены. восстановить их или загрузить исходное состояние?
Я хочу реализовать нечто подобное.
Первой мыслью было создание папки Temp, которая используется для хранения измененных копий исходных файлов. Эти копии обновляются при каждом изменении в редакторе или в обычное время как автосохранение. Когда я нажимаю Сохранить, временная копия просто заменяет оригинал. В случае сбоя системы я выбираю либо временную, либо исходную для загрузки.
Второй - сохранить журнал изменений в связанном файле, как для механизма отмены / возврата, и, если необходимо, повторить действия шаг за шагом. Но это слишком дорого и сложно реализовать в сравнении.
И третье - сохранить измененную копию данных в том же файле с исходными данными (если данные не слишком большие, конечно) и действовать как в первом случае, но без Tempпапки.
Так есть ли какие-то шаблоны, типичные подходы или структуры данных для этой проблемы?