Приложение вылетает при чтении из текстового файла

Я пытаюсь заполнить List<Image>, прочитав имя каждой строки из текстового файла. Текстовый файл выглядит так:

image0
image1
image2
image
...

Следующий код приводит к полному сбою моей программы и зависанию Visual Studio.

int counter = 0;
string line = string.Empty;
StreamReader file = new StreamReader("ItemFile.txt");

while ((line = file.ReadLine()) != null)
{
     imageCollection.Add(new Image());
     imageCollection[counter].Source = new BitmapImage(new Uri("Images/" + line + ".png", UriKind.Relative));
}

person Subby    schedule 01.07.2012    source источник
comment
Я думаю, что в WP7 вам нужно использовать механизм IsolatedStorage для чтения/записи файлов.   -  person ZafarYousafi    schedule 01.07.2012
comment
Выброшено ли исключение? Имейте в виду, что загрузка большого списка больших изображений, как ожидается, будет медленной.   -  person Vlad    schedule 01.07.2012
comment
Если ваш файл находится в изолированном хранилище, вы должны прочитать его из IsolatedStorage. Это руководство может вам помочь< /а>   -  person Alex Sorokoletov    schedule 01.07.2012


Ответы (1)


Вы не можете использовать стандартные механизмы чтения/записи на WP7. Для этого вам нужно использовать классы IsolatedStorage:

IsolatedStorageFile myIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication();
IsolatedStorageFileStream fileStream = myIsolatedStorage.OpenFile("ItemFile.txt", FileMode.Open, FileAccess.Read);
using (StreamReader reader = new StreamReader(fileStream))
{    //Visualize the text data in a TextBlock text
    while ((line = reader .ReadLine()) != null)
    {
         imageCollection.Add(new Image());
         imageCollection[counter].Source = new BitmapImage(new Uri("Images/" + line + ".png", UriKind.Relative));
    }
}

Если вы хотите прочитать текст из файла, который добавляется на устройство как часть проекта во время установки, проверьте этот вопрос: Как читать файлы из папок проекта?

person MarcinJuraszek    schedule 01.07.2012
comment
Я получаю операцию, запрещенную для IsolatedStorageFileStream, когда использую приведенный выше код. - person Subby; 01.07.2012