我有一个包含XML的StorageFile。我从StorageFile读取XML,然后编辑它,然后使用以下代码将其再次保存到StorageFile:
using (var writeStream = await storageFile.OpenStreamForWriteAsync())
{
xDocument.Save(writeStream, SaveOptions.None);
}
但是,当我缩短内容时,例如来自
<Node>
<Child>This is a verrrrrryyy long text</Child>
<Node>
到
<Node>
<Child>This is short</Child>
<Node>
磁盘上的结果如下:
<Node>
<Child>This is short</Child>
<Node>rrryyy long text</Child>
<Node>
显然,Stream只写入文件中的新字节,保留旧字节,从而导致下次尝试打开时无效的XML,因此这可能不是保存的正确方法...... / p>
我应该如何保存它?
答案 0 :(得分:0)
解决方案是截断流:using(var writeStream = await f.OpenStreamForWriteAsync()){if(writeStream.CanSeek&amp;&amp; writeStream.Length&gt; 0)writeStream.SetLength(0); _xml.Save(writeStream,SaveOptions.None); }