1

У меня есть xml-файл, содержащий некоторые предопределенные имена. Я хочу, чтобы он был в Изолированном хранилище, когда я запускаю приложение.Как добавить существующий файл в IsolStorage во время разработки?

Я знаю, как создавать и сохранять данные до IsolatedStorage, но как визуально визуализировать/вставить существующий файл?

IsolatedStorageFile isolatedStorage = IsolatedStorageFile.GetUserStoreForApplication(); 
isolatedStorage.FileExists(filePath) 

Я думаю, что добавление файла resources вызовет загрузку всего файла во время выполнения, и я не хочу этого. Я прав?

+0

Зачем нужна его в Inventory? Вы собираетесь изменить содержимое xml во время выполнения? –

+0

Хотя доступны инструменты ISOExplorer, как можно скопировать его на хранение во время выполнения. Я понимаю, что вы используете его для тестирования, но все же мне интересно, почему? – Mani

ответ

2

Если вы хотите скопировать файл на свое устройство, изолированное хранилище для целей тестирования вы можете использовать Windows Phone IsoStoreSpy. Он обеспечивает интерфейс, позволяющий просматривать и изменять файл thaat в настоящее время в изолированном хранилище вашего приложения на вашем устройстве.

Если вы хотите просто иметь свой xml-файл с вашим xap и не планируете его изменять, просто скопируйте его в проект и установите действие сборки файла на контент.

Наконец, если вы хотите, чтобы ваш xml-файл был отправлен с вашим xap, а затем скопируйте его в isostorage во время выполнения, чтобы вы могли его изменить, вы можете выполнить копию метода расширения с here и следовать инструкциям.

2

С вашего вопроса я могу понять, что ваш файл должен присутствовать в изолированном хранилище при его запуске. Я спрашиваю вас, где он будет получать этот файл в вашем приложении?

Очевидно, что вам нужно добавить ресурсы приложения. Щелкните правой кнопкой мыши на проводнике решений и добавьте xml-файл. Измените привязку файла от содержимого к ресурсу.

Используйте следующий код, чтобы получить данные из XML-файла.

StreamResourceInfo strm = Application.GetResourceStream(new Uri("/NewApp;component/Sources/employees.xml", UriKind.Relative)); 
StreamReader reader = new StreamReader(strm.Stream); 
string data = reader.ReadToEnd(); 

В этом коде я предположил, что NewApp моего имя приложения и я сохранил сотрудник XML-файл в папке Sources я создал. Я прочитал данные xml-файла в переменной строковых данных.

Если вы так строги в том, чтобы хранить его в IsolStorage, то вы можете проверить, содержит ли хранилище этот файл, и если он не добавляет файл в хранилище, иначе вы можете загрузить его только из хранилища.

using (var storage = IsolatedStorageFile.GetUserStoreForApplication()) 
     { 
      if (storage.FileExists("employees.xml")) 
      { 
       //Load it 
      } 
      else 
      { 
       System.Windows.Resources.StreamResourceInfo strm = Application.GetResourceStream(new Uri("/NewApp;component/Sources/employees.xml", UriKind.Relative)); 
       System.IO.StreamReader reader = new System.IO.StreamReader(strm.Stream); 
       string data = reader.ReadToEnd(); 
       using (var file = storage.OpenFile("employees.xml", System.IO.FileMode.Create)) 
       { 
        using (var writer = new System.IO.StreamWriter(file)) 
        { 
         writer.WriteLine(data); 
        } 
       } 
      } 
     } 
Смежные вопросы