XDocument.Save (строка имени файла) сохраняет весь файл или просто изменяется? - PullRequest
1 голос
/ 16 мая 2009

В основном, если я делаю Xdoc.Load (имя файла), делаю некоторые изменения, затем делаю Xdoc.Save (имя файла), он сохраняет только измененные элементы, такие как вставленные или удаленные элементы и т. Д., Или восстанавливает все?

В зависимости от ответа я подумываю определить, будет ли мое приложение сохранять за изменения или сохранять при явном сохранении и при выходе. Также рассматривается вопрос о том, писать ли в несколько файлов XML или просто хранить все в одном большом файле. Я понятия не имею, насколько большим будет один большой файл, но я подозреваю, что он потенциально может составлять 10 МБ, поэтому, если он восстанавливает весь файл, то я определенно не могу сохранить каждое изменение, сохраняя один большой файл.

Если он сохраняет весь файл, есть ли у кого-нибудь мнение о наличии отдельного XML-файла для каждой сущности (возможно, сотен) и является ли это хорошей идеей?

Ответы [ 2 ]

8 голосов
/ 16 мая 2009

Сохраняет весь файл. Это природа текстовых форматов. Текстовый файл не может перезаписать себя без перезаписи неизмененных частей.

3 голосов
/ 16 мая 2009

Да, при сохранении документа сохраняется весь документ.

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

Интересно, нужен ли вам вообще временный каталог? Это звучит как довольно много работы для небольшой выгоды.

...