我有一个包含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,所以这可能不是正确的保存方式……
我应该如何保存它?
发布于 2014-12-28 04:54:42
解决方案是截断流:
using (var writeStream = await f.OpenStreamForWriteAsync())
{
if (writeStream.CanSeek && writeStream.Length > 0)
writeStream.SetLength(0);
_xml.Save(writeStream, SaveOptions.None);
}https://stackoverflow.com/questions/13454584
复制相似问题