locked
Чтения файла в потоке для Windows 8 RRS feed

  • Вопрос

  • Вроде простейший код, написан везде для C# но для Windows 8 не  работает:(

                List<string> list = new List<string>();
                using (StreamReader reader = new StreamReader("file.txt", System.Text.UTF8Encoding))
                {
                    string line;
                    while ((line = reader.ReadLine()) != null)
                    {
                        list.Add(line); // Add to list.
                    }
                }
            }
    
    Пишет что не правильно заданы параметры

    15 января 2013 г. 7:31

Ответы

  • Посмотрите здесь.

    StorageFile storageFile = await localFolder.GetFileAsync("test.txt");
                var lines = await FileIO.ReadLinesAsync(storageFile);
                foreach (var line in lines)
                {
                    
                }


    • Изменено Kirill Bessonov 15 января 2013 г. 8:48
    • Предложено в качестве ответа LXGDARK 15 января 2013 г. 9:15
    • Помечено в качестве ответа Abolmasov Dmitry 16 января 2013 г. 7:48
    15 января 2013 г. 8:46

Все ответы

  • В WinRT изменился принцип работы с файлами. Подробнее читайте тут.

    Женат на WPF. Тайно встречаюсь с WinRT. Не сложилось с C#!

    • Изменено LXGDARK 15 января 2013 г. 7:34
    15 января 2013 г. 7:32
  • Теперь это будет выглядеть приблизительно так:

                    var storageFolder = ApplicationData.Current.LocalFolder;
                    var storageFile = await storageFolder.GetFileAsync("file.txt");
                    var randomAccessStream = await storageFile.OpenAsync(FileAccessMode.Read);
                    using (var stream = Task.Run(() => randomAccessStream.AsStreamForRead()).Result)
                    {
                        
                    }
    

    15 января 2013 г. 7:40
  • Как то усложнили все.

    Теперь надо искать как прочитать файл построчно:())

    15 января 2013 г. 8:16
  • Вся работа с файлами теперь асинхронная, отсюда и дополнительные сложности.

    Windows 8: The right way to Read & Write Files in WinRT

    15 января 2013 г. 8:36
  • Ничего умнее пока не придумал

                    StorageFolder storageFolder = KnownFolders.DocumentsLibrary;
                    StorageFile sampleFile = await storageFolder.GetFileAsync("file.txt");
                    string text = await Windows.Storage.FileIO.ReadTextAsync(sampleFile);
                    string[] arrLines = text.Split(new char[] { '\n' });
    

    15 января 2013 г. 8:37
  • Посмотрите здесь.

    StorageFile storageFile = await localFolder.GetFileAsync("test.txt");
                var lines = await FileIO.ReadLinesAsync(storageFile);
                foreach (var line in lines)
                {
                    
                }


    • Изменено Kirill Bessonov 15 января 2013 г. 8:48
    • Предложено в качестве ответа LXGDARK 15 января 2013 г. 9:15
    • Помечено в качестве ответа Abolmasov Dmitry 16 января 2013 г. 7:48
    15 января 2013 г. 8:46
  • Да, спасибо, это гораздо лучше:)
    15 января 2013 г. 9:13
  • Привет, не забывайте отмечать решение проблемы (кнопка "Пометить как ответ"). Спасибо.

    Для связи [mail]

    • Помечено в качестве ответа Dmitriy Konyuhov 16 января 2013 г. 11:59
    • Снята пометка об ответе Abolmasov Dmitry 16 января 2013 г. 16:08
    16 января 2013 г. 7:48