Программа хранит ряд настроек в xml-файле. Если в момента записи настройки отключается питание компьютера, содержимое файла пропадает (сам файл остается, но если открыть - он пустой). Появилась идея сохранять изменения во временный файл, а затем переносить их в основной. Тогда, теоретически, должен повредиться только один из файлов при сбросе питания. Но на деле пропадает содержимое обоих файлов. Причина в коде? Или сам подход неправильный? Сохранение временного файла и его копирование в файл-оригинал представлено ниже:
StreamWriter streamWriter = new StreamWriter(FileName_);
BlockFile.WaitOne();
xmlDoc.Save(streamWriter);
BlockFile.Release();
streamWriter.Dispose();
File.Copy(FileName_, FileName, true);
Рекомендую сделать так:
Если вы выполните этот алгоритм, то при любом сбое вы будете уверены настройки не пропадут.
Доброго времени суток! Последовательность должна быть такой:
Открытие рабочего файла
1) Проверяете существование ~settings.xml
2.1) Если существует то открываете его с доступом на чтение
2.2) Открываете файл settings.xml
с доступом на запись
2.3) Записываете содержимое файла ~settings.xml
в settings.xml
2.4) Закрываете файлы. Удаляете ~settings.xml
(далее работает по пунктам следующим пунктам)
3) Если файл ~settings.xml
не существует, то открываете файл settings.xml
с доступом на чтение
4) Создаете файл ~settings.xml
и открываете с доступом на запись
5) Работаете с файлом ~settings.xml
Сохранение результатов
1) Закрываете оба файла
2) Открываете файл ~settings.xml
с доступом на чтение и файл settings.xml
с доступом на запись
3) Перезаписываете файл settings.xml
содержимым файла ~settings.xml
4) Закрываете оба файла. Удаляете ~settings.xml
Этот алгоритм должен предотвратить полную потерю данных
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Нашёл на просторах кодОчень удобно и быстро работает даже с большими файлами, но вот отобразить больше одной строчки у меня не получилось
Как сделать запрос на вывод столбца на страницу в RedBeanPhp?