无法保存XML文件中的更改

时间:2016-04-17 13:37:31

标签: android xamarin xamarin.android xamarin.forms xamarin-studio

我在尝试保存XML文件时遇到问题我将XML文件存储在Assets文件夹中并将构建操作设置为Android资源但是当xml.Save(" Q317664.xml"); line来它给出异常System.UnauthorizedAccessException:访问路径" /Q317664.xml"被拒绝。我不确定为什么会这样。

using System;
using Android.App;
using Android.Content;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;
using System.IO;
using System.Reflection;
using Android.Content.Res;
using System.Xml;
using System.Xml.Linq;
using System.Xml.XPath;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace App17
{
[Activity(Label = "App17", MainLauncher = true, Icon = "@drawable/icon")]
public class MainActivity : Activity
{
    int count = 1;

    protected override void OnCreate(Bundle bundle)
    {
        base.OnCreate(bundle);

        // Set our view from the "main" layout resource
        SetContentView(Resource.Layout.Main);

        // Get our button from the layout resource,
        // and attach an event to it
        var xml = XDocument.Load(Assets.Open("Q317664.xml"));
        var node = xml.Descendants("Book").FirstOrDefault(cd => cd.Attribute("Id").Value == "1");
        node.SetAttributeValue("ISBN", "new");
        xml.Save("Q317664.xml");
     //   Button button = FindViewById<Button>(Resource.Id.MyButton);

       // button.Click += delegate { button.Text = string.Format("{0} clicks!", count++); };
    }
}
}

2 个答案:

答案 0 :(得分:0)

我们无法在Assets文件夹中编辑和保存XML文件。 Assets文件夹中的文件是包含APK附带的静态数据的文件。我们不能写信给它。您可以阅读xml编辑它,然后可能将文件保存到App的目录。

答案 1 :(得分:0)

在Xamarin Android中

var path = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
var filename = Path.Combine(path, "myFile.xml");

File.WriteAllText(filename,xml.ToString());