Как загрузить XML-файл, расположенный внутри папки приложения в окне телефона 7? - PullRequest
4 голосов
/ 27 декабря 2010

Я занимаюсь разработкой приложения для windows phone 7. Я новичок в приложении Windows Phone 7. Я добавил XML-файл в свой проект, щелкнув правой кнопкой мыши по проекту и выбрав Add -> New Item. Затем я могу легко загрузить файл XML в свое приложение, используя следующий код

IsolatedStorageFile isfData = IsolatedStorageFile.GetUserStoreForApplication();
            XDocument doc = null;
            IsolatedStorageFileStream isfStream = null;
            if (isfData.FileExists(strXMLFile))
            {
                isfStream = new IsolatedStorageFileStream(strXMLFile, FileMode.Open, isfData);
                doc = XDocument.Load(isfStream);
                isfStream.Close();
            }
            else
            {
                doc = XDocument.Load(strXMLFile);
                isfStream = new IsolatedStorageFileStream(strXMLFile, FileMode.CreateNew, isfData);
                doc.Save(isfStream);
                isfStream.Close();
            }

Используя приведенный выше код, я могу выполнить операцию чтения и записи в моем XML-файле.

Но проблема возникает, когда я помещаю свой XML-файл в папку. Моя проблема заключается в следующем: Я добавил одну папку с именем «XML Files» в свой проект, щелкнув правой кнопкой мыши имя проекта и выбрав Add -> New Folder в Visual Studio. Затем я добавил XML-файл в папку «XML-файлы», щелкнув правой кнопкой мыши папку и выбрав Add-> New Item. Когда я помещаю файл XML в папку, я не могу загрузить его в свое приложение. Я также пытался со следующим утверждением

isfStream = new IsolatedStorageFileStream("/XML Files/"+strXMLFile, FileMode.Open, isfData);

Я получаю ошибку в

doc = XDocument.Load(strXMLFile);

Я получаю сообщение об ошибке "Не удается найти файл '/ XML Files / A.xml' в пакете xap приложения". Что я должен делать ? Как загрузить файл XML, находящийся внутри папки? Что-то не так в моем коде? Можете ли вы предоставить мне какой-либо код или ссылку, с помощью которой я могу решить вышеуказанную проблему?

1 Ответ

11 голосов
/ 27 декабря 2010

Сначала убедитесь, что Build Action для вашего XML-файла установлено на Content, а для параметра Copy to output установлено Copy if newer (или Copy always). Затем попробуйте это:

XDocument doc = XDocument.Load( "XML Files/MyXmlFile.xml" );

Обратите внимание, что впереди нет косой черты (/); Несколько дней назад я провел несколько часов, застряв на этой глупой проблеме.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...