我正在使用此代码将节点添加到XmlDocument,然后将其保存到现有文件,但是我不断收到此错误消息:
访问被拒绝。 (HRESULT异常:0x80070005(E_ACCESSDENIED))
我正在使用的代码是:
string xml = string.Empty;
StorageFolder storageFldr = Package.Current.InstalledLocation;
storageFldr = await storageFldr.GetFolderAsync("Scores");
StorageFile sf = await storageFldr.GetFileAsync("Scores.xml");
xml = await FileIO.ReadTextAsync(sf, Windows.Storage.Streams.UnicodeEncoding.Utf8);
XmlDocument xDoc = new XmlDocument();
xDoc.LoadXml(xml);
IXmlNode xNode = xDoc.CreateElement("score");
xNode.InnerText = "Hello this is a test";
xDoc.DocumentElement.AppendChild(xNode);
await xDoc.SaveToFileAsync(sf);
我将不胜感激。
提前谢谢大家。
答案 0 :(得分:2)
我遇到了同样的问题,但这对我有用:
Windows.Storage.StorageFolder sf = await ApplicationData.Current.LocalFolder.CreateFolderAsync("EMP", CreationCollisionOption.OpenIfExists);
StorageFile st = await sf.CreateFileAsync("Employee.xml", CreationCollisionOption.OpenIfExists);
await dom.SaveToFileAsync(st);
答案 1 :(得分:1)
如果您的应用程序没有提升权限(受信任的应用程序 - 使用证书或OOB应用程序),我认为这是不可能的。
您可以按照本指南将应用设置为浏览器外应用程序。
How to: Configure an Application for Out-of-Browser Support
然而,这可能通过使用隔离存储来保存 - 然后修改XML。