Как читать файлы проекта в общем проекте в универсальном приложении Windows?

А именно файл, который находится здесь: https://dl.dropboxusercontent.com/u/19417676/snowbird_confusion.png (изображение связано из-за отсутствия репутации для прямой публикации)

Учебники и документация поощряют использование пространства имен Windows.Storage, но при запуске моего проекта и перечислении всех файлов и папок в Windows.Storage.ApplicationData выяснилось, что там ничего не существует. Кроме того, ничего не существует в папках Local, Roaming или Temp.

Использование Windows.ApplicationModel.Package.Current.InstalledLocation приближает меня, но помещает меня в каталог ...\Debug\AppX. При просмотре созданной структуры проекта фактическая папка, содержащая мой файл .rtf, находится в ...\Debug\Tales, а приложения WinRT очень ограничены в отношении переходных структур каталогов (не говоря уже о том, что они, вероятно, в любом случае не будут переносимы на Windows Phone).

Итак, как мне получить доступ к этому файлу?


person PingZing    schedule 02.05.2014    source источник
comment
Есть ли другие копии в папке AppX? Кроме того, вы пытались игнорировать «общее пространство имен» и просто ссылаться на него, как если бы папка находилась в основном проекте? Поэтому, если ваша общая папка /Images, просто назовите ее /Images/Filename.Ext.   -  person Nate Diamond    schedule 03.05.2014
comment
Решил это (как и ожидалось, вскоре после того, как задал вопрос...). Опубликую свое решение после истечения таймера. По сути, я забыл изменить действие сборки на содержимое самого файла.   -  person PingZing    schedule 03.05.2014


Ответы (1)


Догадаться. Я правильно установил для своего файла .rtf значение Copy to output dir: Copy Always, но забыл изменить его Build Action на Content.

Приведенный ниже код теперь работает нормально.

StorageFolder folder = Windows.ApplicationModel.Package.Current.InstalledLocation;
folder = await folder.GetFolderAsync("MyFolder");
StorageFile file= await folder.GetFileAsync("MyFile.rtf");
string rtfString = await Windows.Storage.FileIO.ReadTextAsync(file);
person PingZing    schedule 03.05.2014