Как да чета файлове на проекта под споделения проект в универсално приложение на 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