Ответы с форумов MSDN

Чтение файлов в UWP

Date: 14.12.2016 10:41:36

Вероятно, у UWP приложения нет прав читать этот файл. Попробуйте читать файл из папки Документов пользователя.

Message 1047

Date: 14.12.2016 11:02:08

на каком конкретно методе падает? каков текст исключения? приведите как можно более подробные данные, все что выводит отладчик (или метод Exception.ToString)

" То есть fs.Close() будет воспринят компилятором как ошибка."

какая ошибка выводится? вообще-то лучше использовать using а не прямые вызовы Close, на любой платформе

Поправка: таки да, Close в UWP убрали почему-то. В документации в перечне платформ UWP нет. Так что только using


Message 1044

Date: 15.12.2016 6:12:35

Ну да, так я и предполагал. Чтение файла UWP считает тяжелой операцией и не позволяет вызывать в интерфейсном потоке. Следует перенести ее в фоновый поток.

Ошибка	CS1061	'XmlDocument" не содержит определения для "Close"

используйте using или Dispose()

Message 1042

Date: 16.12.2016 5:25:05

 "сделал для себя открытие в виде StreamReader\Writer. Хотя обычно пользовался FileStream"

FileStream и StreamReader/Writer не взаимозаменяемы. Первый пишет просто байты, второй - текст в заданной кодировке. По сути любой ридер это обертка для Stream.

"Я разобрался с этим комструктором (StreamReader), с помощью документации на MSDN по этой ссылке:"

по этой ссылке можно также прочитать, что StreamReader имеет несколько конструкторов, не все из котороых поддерживаются в UWP (см. раздел "Информация о версии").

"При попытке портировать этот код на UWP компилятор выдаёт ошибки:"

Конструктор, принимающий строку, не поддерживается в UWP. Однако есть конструктор, принимающий Stream (https://msdn.microsoft.com/ru-ru/library/yhfzs7at(v=vs.110).aspx). Там же есть пример, как использовать.

"Так как же заставить этот UWP работать с различными файлами?"

проблема из первого сообщения, при использовании StreamReader, также будет повторяться. Надо учиться работать с фоновыми потоками

Message 1041

Date: 16.12.2016 6:36:18

Async/Await тут может и не понадобятся. Думаю начать следует с программирования многопоточности с помощью Task

Автор: VadimTagil

Главная страница - Список тем - Репозиторий на GitHub