XDocument.Save(字符串文件名)是重新保存整个文件还是仅更改?

时间:2009-05-16 02:49:41

标签: c# xml save linq-to-xml

基本上如果我做Xdoc.Load(文件名),做一些更改然后做Xdoc.Save(filename)它只保存更改的内容,如插入或删除元素等,还是重新保存所有内容?

根据答案,我正在考虑确定我的应用程序是保存每次更改还是保存在显式保存和退出时。还要考虑是否要写入多个xml文件或只是将所有内容保存在一个大文件中。我不知道一个大文件有多大,但我怀疑它可能是10的MB,所以如果它重新保存整个文件,那么我绝对不能保存每个更改,同时保留一个大文件。

如果它确实保存了整个文件,那么是否有人对每个实体(可能是数百个)都有一个单独的xml文件以及它是否是个好主意?

2 个答案:

答案 0 :(得分:8)

它保存整个文件。这是基于文本的格式的本质。文本文件无法覆盖自身而不重写未更改的部分。

答案 1 :(得分:3)

是的,保存文档会保存整个文档。

“每次更改”保存的用例是什么?是为了防止应用程序崩溃?如果是这样,我建议您将这些增量更改保存在临时目录中作为小文件,但是当用户明确说要保存文件时,请将其保存在一个大文件中。 (这样更容易复制等。)退出时删除临时目录。

我确实想知道你是否真的需要临时目录。听起来好像很多工作都没有什么好处。