0

アプリケーションフォルダー(Windows 8、メトロスタイル)に配置されたxmlファイルへの書き込みに問題があります。ファイルを読み取り/書き込みモードで開こうとすると、Unauthorized AccessException が発生します。私は多くの研究を行いましたが、まだ何もありません。私はこの解決策を試しました:

var sf = await Package.Current.InstalledLocation.GetFileAsync(@"data.xml");
        XmlDocument xmlDoc;
        using (var stream = await sf.OpenAsync(FileAccessMode.ReadWrite))
        {
            xmlDoc = await XmlDocument.LoadFromFileAsync(sf);
            XmlElement root = xmlDoc.DocumentElement;
            XmlElement xe = xmlDoc.CreateElement("debt");

            XmlElement id = xmlDoc.CreateElement("Id");
            id.InnerText = Guid.NewGuid().ToString();

            XmlElement name = xmlDoc.CreateElement("Name");
            name.InnerText = d.Name;

            XmlElement surname = xmlDoc.CreateElement("Surname");
            surname.InnerText = d.Surname;

            xe.AppendChild(id);
            xe.AppendChild(name);
            xe.AppendChild(surname);

            root.AppendChild(xe);
        }
        if (xmlDoc != null)
            await xmlDoc.SaveToFileAsync(sf);  

しかし、ストリームを開いている行で再び例外が発生します。

あなたの助けをthx

4

1 に答える 1

2

Package.Current.InstalledLocation.GetFileAsyncは、アプリケーションがインストールされている場所を表します。これは、ファイルを直接書き込むことができない領域です。以下を使用してください

Windows.ApplicationModel.Package.Current.InstalledLocation

また

Windows.Storage.ApplicationData.Current.LocalFolder.Path

私は前者を使用していますが、正常に動作します。http://metrorssreader.codeplex.com/SourceControl/changeset/view/18082#263004を参照してください。

于 2012-07-19T08:52:53.103 に答える