保存文件时访问被拒绝,Windows 8 App

时间:2014-01-20 13:04:10

标签: c# silverlight xaml windows-8 windows-8.1

我正在使用此代码将节点添加到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);

我将不胜感激。

提前谢谢大家。

2 个答案:

答案 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。

请参阅此示例XML File with IsolatedStorage