将 XDocument 保存到 "using stream" 中的文件

Save and XDocument to a file in a "using stream"

所以我正在尝试执行打开 XML 文件、向其中添加 XElement 并保存它的简单任务。我当前的代码不起作用:

Uri dataUri = new Uri("ms-appx:///XML Files/Pinouts.xml");
StorageFile file = await StorageFile.GetFileFromApplicationUriAsync(dataUri);
using (var stream = await file.OpenStreamForWriteAsync())
{
    XDocument doc = XDocument.Load(stream);
    doc.Add(new XElement(XElement.Parse(CurrentPinOut)));
    doc.Save(stream);
    stream.Flush();
}

因为我收到 "Access denied" 错误。我猜这是一个简单的修复,但在最后一个小时的搜索中我没有找到任何东西。有什么想法吗?

您不能将文件写入 InstalledLocation - 它是 只读,但您肯定可以将文件写入 LocalFolder (或其他可访问的位置):

StorageFile file = await ApplicationData.Current.LocalFolder.CreateFileAsync("Pinouts.xml", CreationCollisionOption.GenerateUniqueName);
using (var stream = await file.OpenStreamForWriteAsync())
{
    XDocument doc = XDocument.Load(stream);
    doc.Add(new XElement(XElement.Parse(CurrentPinOut)));
    doc.Save(stream);
    stream.Flush();
}

有关应用程序数据的更多信息,您将找到 at MSDN