我正在编写一个Windows 10 UWP应用程序,而且我遇到了麻烦。我在app文件夹的根目录中有一个Settings.xml,用于存储数据库连接信息,以及一些辅助设置。我可以加载XML,我的编辑功能(我可以通过调试提取XML并查看更改)。尝试编写已编辑的文件时出现问题。我知道我没有使用UWP直接访问文件系统,但是我已经尝试了几种不同的方法,我在网上找到了在我的约束下工作但仍然无法找到有效的方法。我总是以某种形式回复“访问被拒绝”错误。这是我的Save函数现在看起来的片段。任何帮助将不胜感激。
try
{
XElement xmlSettings = XElement.Load(uri: "Settings.xml");
XElement xmlNode;
//Do Stuff (clipped for brevity).
StorageFolder folder = ApplicationData.Current.LocalFolder;
StorageFile file = await folder.CreateFileAsync(desiredName: "Settings.xml", options: CreationCollisionOption.ReplaceExisting);
Stream stream = await file.OpenStreamForWriteAsync();
xmlSettings.Save(stream);
Error = "";
}
catch (Exception e)
{
Error = "SaveSettings";
}
答案 0 :(得分:1)
我在我的解决方案中添加了一个xml文件(在根目录中)并复制粘贴了您的代码。 它第一次运行,但第二次获得异常。原因是您的流未关闭。您应该使用它:
using (Stream stream = await file.OpenStreamForWriteAsync())
{
xmlSettings.Save(stream);
}
通过此更改,代码甚至第二次工作。