保存并XDocument到“使用流”中的文件

本文关键字:使用流 文件 XDocument 保存 | 更新日期: 2023-09-27 18:32:32

所以我正在尝试执行一个简单的任务,即打开一个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();
}

当我收到"访问被拒绝"错误时。我猜这是一个简单的修复,但在搜索的最后一小时内我没有找到任何东西。有什么想法吗?

保存并XDocument到“使用流”中的文件

您不能将文件写入 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();
}

有关应用程序数据的详细信息,请访问 MSDN。