我使用以下代码在独立存储中创建和加载xml。在第一部分中,如果文件不存在,它将在独立存储中创建该文件,否则将加载已在独立存储文件中创建/加载的文件。问题是当它试图加载它在第一次调用函数时(成功地)创建/加载的文件。以下是代码
public void InitAch()
{
using (var storage = IsolatedStorageFile.GetUserStoreForApplication())
{
if (!storage.FileExists("Achievements.xml"))
{
using (Stream stream = storage.OpenFile("Achievements.xml", FileMode.Create, FileAccess.Write))
{
XDocument xml = XDocument.Load("Achievements.xml");
xml.Save(stream,SaveOptions.None);
}
}
else
{
using (Stream stream = storage.OpenFile("Achievements.xml", FileMode.Open, FileAccess.Read))
{
XDocument xml = XDocument.Load(stream,LoadOptions.None);
Lexis.Page4.Achievements.sheep = Int32.Parse(xml.Root.Element("BlackSheep").Value);
Lexis.Page4.Achievements.singularity = Int32.Parse(xml.Root.Element("Singularity").Value);
Lexis.Page4.Achievements.luke = Int32.Parse(xml.Root.Element("LuckyLuke").Value);
Lexis.Page4.Achievements.gardener = Int32.Parse(xml.Root.Element("Gardener").Value);
Lexis.Page4.Achievements.dumbo = Int32.Parse(xml.Root.Element("Dumbo").Value);
Lexis.Page4.Achievements.joker = Int32.Parse(xml.Root.Element("Joker").Value);
Lexis.Page4.Achievements.maid = Int32.Parse(xml.Root.Element("Maid").Value);
Lexis.Page4.Achievements.mr = Int32.Parse(xml.Root.Element("MrWords").Value);
Lexis.Page4.Achievements.secret = Int32.Parse(xml.Root.Element("Detective").Value);
}
}
}我将非常感谢你的帮助。
发布于 2011-08-11 01:57:06
if (!storage.FileExists("Achievements.xml"))
using (Stream stream = storage.OpenFile("Achievements.xml", FileMode.Create, FileAccess.Write))
{
XDocument xml = XDocument.Load("Achievements.xml");
xml.Save(stream,SaveOptions.None);
}在此代码中:
中。
您需要修复XML文件的创建。
发布于 2011-08-11 02:09:25
为什么要创建一个空文件并保存它?这看起来有点..不对。
关于加载一个空文件,当然,只要你访问xml.Root.Element("BlackSheep").Value,它就会失败并抛出一个异常。
该元素不会存在于空文件中,因此Element("BlackSheep")将返回null。而.Value属性访问将导致异常。
所以我不确定你需要什么帮助,除了:
https://stackoverflow.com/questions/7014902
复制相似问题