2015-06-14 4 views
1

Я пытаюсь прочитать данные из json-файла в .NET 4.5 для Windows Phone. После нажатия кнопки исключение появляется, говоря:C# Windows Phone не может найти json-файл

System.IO.FileNotFoundException (Exception from HRESULT: 0x80070002) 

Мой код:

public static async Task ReadFile() 
{ 
    StorageFolder local = Windows.ApplicationModel.Package.Current.InstalledLocation; 

    if (local != null) 
    { 
     var file = await local.OpenStreamForReadAsync("bazaDanych.json"); 

     using (StreamReader streamReader = new StreamReader(file)) 
     { 
      json = streamReader.ReadToEnd(); 
     } 
    } 
} 

Вот мой взгляд Обозревателе решений:
enter image description here

ответ

1

Вы не копируете файл в локальном хранилище ,

Поместите файл JSon в папке Assets, убедитесь, что его свойство говорит «Содержимое» и «Копировать всегда»

На первом запуске вы должны прочитать JSON из пакета

var filename = "Assets/BazaDanych.json"; 
var sFile = await StorageFile.GetFileFromPathAsync(filename); 
var fileStream = await sFile.OpenStreamForReadAsync(); 

И храните в локальном хранилище.

Существует пример для Windows 8 (который является более или менее такой же)

Related question.

+0

Можете ли вы рассказать мне, как это сделать? Я не уверен, что вы имеете в виду. – nym

+0

@nym см. Обновление. –

+0

Спасибо, это было очень полезно, особенно пример кода из ссылки, которую вы вставили. Одна важная вещь, которую я изменил в моем коде, - это присвоить 'ApplicationData.Current.LocalFolder'' StorageFolder'. – nym