c#DataSet.WriteXml(fileStream,XmlWriteMode.IgnoreSchema);破坏我的xml文件

时间:2017-07-04 19:35:52

标签: c# .net xml filestream

<Data>
  <configs>
    <someEntry>"value1"</someEntry>
  </configs>
  <profiles>
    <someEntry>"value2"</someEntry>
  </profiles>
</Data>es>
    <someEntry>"value3"</someEntry>
  </profiles>
</Data>

</Data>es>是问题所在。 当我尝试删除&#34; value3&#34;此示例中的DataRow。 Visual Studio的DataTable Visualizer显示我的表很好,但DataSet以这种方式保存,尽管它是这样的:

<Data>
  <configs>
    <someEntry>"value1"</someEntry>
  </configs>
  <profiles>
    <someEntry>"value2"</someEntry>
  </profiles>
</Data>

在开始使用FileStream之前,一切都按预期工作。这就是我启动FileStream的方式:

FileStream filestream = new FileStream(xmlLocation, FileMode.Open, FileAccess.ReadWrite);

1 个答案:

答案 0 :(得分:1)

您正在使用FileMode.Open,如果该文件已存在,则不会截断该文件。

只需使用File.Create

using (var stream = File.Create(directory))
{
    ...
}

(你可以指定FileMode.Create,就像你的帖子在你编辑它之前最初的那样,但我发现在几乎所有方法中调用File.*简化方法要简单得多的情况。)