2016-02-27 4 views
1

У меня проблема с чтением файла JSON. Файл вставляется в обозреватель решений с настройкой Build Action для содержимого и копирует свойство se для копирования всегда. Я ожидаю, что файл должен быть доступен из приложения в LocalFolder.C# - Чтение из файла JSON

Stream localFolder = await ApplicationData.Current.LocalFolder.OpenStreamForReadAsync("sources.json"); 

string json; 

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

return JsonConvert.DeserializeObject<List<SourceDefinition>>(json); 

Ошибка она возвращается в:

Error: The system cannot find the file specified. (Exception from HRESULT: 0x80070002)

+0

Какая ошибка вы получаете? – joshmcode

+0

Ошибка: система не может найти указанный файл. (Исключение из HRESULT: 0x80070002) –

+0

Получаете ли вы ошибку при работе с Visual Studio или после развертывания приложения? Также где именно в вашем приложении вы разместили файл? –

ответ

1

просто попробовать File.OpenRead - вы Propably пытаетесь открыть из AppData, который особый путь в Чет профиль_пользователя (% LocalAppData% в этом case)

1

Таким образом, ApplicationData.Current.LocalFolder указывает на пользователей \ XXXXX \ Local \ Packages \ YYYYYY \ LocalState, где XXXX является пользователем, а YYYY - GUID для вашего приложения. Никакая папка в проводнике проекта фактически не указывает на это место, насколько мне известно. Вы можете попробовать использовать Windows.ApplicationModel.Package.Current. InstalledLocation.Path получит доступ к бункеру, в котором работает приложение. Надеюсь это поможет.