Открытие файла из URI пакета в WPF - PullRequest
5 голосов
/ 28 марта 2010

Я хочу открыть файл .csv из пакета приложений, чтобы выполнить какое-то модульное тестирование.Так что мне бы очень понравилось, это какой-то аналог File.ReadAllText(string path), который вместо этого X.ReadAllText(Uri uri).Я пока не смог найти это.

Кто-нибудь знает, возможно ли читать текст / байты (не берите в голову) из файла в пакете, не компилируя этот файл на диск сначала?

Да, между прочим, File.ReadAllText(@"pack://application:,,,/SpreadSheetEngine/Tests/Example.csv") у меня не сработало ... и я уже делаю трюк var app = new Application(), чтобы убедиться, что я запустил пакет во время моего юнит-теста.

Ответы [ 2 ]

11 голосов
/ 26 октября 2012

Я просто хотел сделать то же самое и в итоге использовал Application.GetResourceStream.Ниже приведен пример кода.Я использовал метод ReadFully из Создание байтового массива из потока .

string imagePath = "pack://application:,,,/ReferencedAssembly;Component/Assets/Images/image.png";
StreamResourceInfo imageInfo = System.Windows.Application.GetResourceStream(new Uri(imagePath));
byte[] imageBytes = ReadFully(imageInfo.Stream);
6 голосов
/ 28 марта 2010

Просто получите поток из возвращаемого значения Application.GetResourcePart () и используйте StreamReader , чтобы прочитать весь текст, используя член ReadToEnd.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...