Обеспечить автосохранение в C#

Этот пример расширяет пример scribble (наиболее недавно описанный в post Предоставить отменить и повторить в C# ), поэтому он предоставляет функцию автоматического сохранения.

Следующий код создает имя файла автосохранения программы.

...

Предыдущая версия программы сохраняет моментальный снимок всякий раз, когда вы вносите изменения в чертеж. Затем он использует сохраненные снимки для обеспечения функций отмены и повтора. Следующий код показывает версию новой программы SaveSnapshot. Новый код выделен синим цветом.

Метод SaveSnapshot сохраняет снимок как прежде, а затем, если переменная auto_save истинна, она вызывает метод AutoSave. Этот метод просто вызывает метод SaveIntoFile, предлагая ему сохранить моментальный снимок в файле автосохранения. Метод SaveIntoFile - это тот же метод, который программа использует для создания сохраненных файлов scribble. (См. Сообщение Сохранение и восстановление рисунков пользователем в C# для получения информации о том, как это работает.)

При запуске программы выполняется следующий Load обработчик событий.

Этот код проверяет, существует ли файл автосохранения. Если это так, программа спрашивает, хотите ли вы ее перезагрузить. Если вы нажмете «Да», код вызывает LoadFromFileMethod (который также используется для загрузки сохраненных файлов scribble), чтобы загрузить его.

Последним новым фрагментом кода является следующий обработчик события FormClosing.

Если файл автосохранения существует, этот код удаляет его. Это заставляет программу удалять файл, если он закрывается нормально. Чтобы сделать сбой программы, нажмите кнопку маленькой бомбы в правом углу панели инструментов.

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

Источник: http://csharphelper.com/blog/2015/03/provide-autosave-in-c/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)

Add a Comment

Ваш e-mail не будет опубликован. Обязательные поля помечены *