Silverlight XML Save 不会覆盖整个文件
Posted
技术标签:
【中文标题】Silverlight XML Save 不会覆盖整个文件【英文标题】:Silverlight XML Save does not overwrite the entire file 【发布时间】:2012-06-14 11:37:23 【问题描述】:解释我的问题的最好方法是举个例子。
我有一个包含一些元素的 Xml 文件。当我删除一个元素时,我再次保存文件并出现此问题:
保存前
<?xml version="1.0" encoding="utf-8"?>
<ElementTree>
<Elements1 />
<Elements2>
<Element Name="TestElement" ID="4efa7cc9-a89a-429b-81f4-b00cde729f24" />
</Elements2>
<Elements3 />
</ElementTree>
保存后
<?xml version="1.0" encoding="utf-8"?>
<ElementTree>
<Elements1 />
<Elements2 />
<Elements3 />
</ElementTree>D="4efa7cc9-a89a-429b-81f4-b00cde729f24" />
</Elements2>
<Elements3 />
</ElementTree>
我怀疑它在做什么:它一直在写文本,直到它到达要保存的文本的末尾,然后它就停止了。它不会删除流中最后一个字符之后仍写入文件中的文本。
我该如何解决这个问题?
【问题讨论】:
我以前在其他情况下也遇到过类似的问题。您可以在创建新文件之前删除现有文件吗? 在 Emo 的回答中查看我的评论! 【参考方案1】:确保在打开它时replace the existing file 并正确关闭流。
【讨论】:
using (var stream = file.OpenFile("Films.xml", FileMode.Open, FileAccess.Write)) 将 FileMode.Open 更改为 FileMode.Create 解决了这个问题。非常感谢! 没问题。下次您提出问题时,请确保发布您正在使用的代码。这会使回答这个问题变得容易得多。以上是关于Silverlight XML Save 不会覆盖整个文件的主要内容,如果未能解决你的问题,请参考以下文章
Silverlight Xaml 覆盖控件的 IsEnabled 属性
覆盖 Django InlineModelAdmin 上的 save_model