Acceder a los archivos de instalación en aplicaciones | WinRT

Básico

Cuando creamos aplicaciones para Windows Store es usual hacer uso de la carpeta Assets para depositar allí imágenes, videos, archivos xml y demás tipos de recursos, incluso es común crear carpetas adicionales y otras jerarquías de ellas para organizar los diferentes archivos necesarios para el correcto funcionamiento de la aplicación.

Solution Explorer

Muchos de los objetos de la UI como por ejemplo los objetos Image enmascaran todo el proceso de carga de estos recursos por lo que el proceso es muy transparente a los ojos del desarrollador.

Sin embargo a veces se necesita acceder a estos archivos a través del código lo cual en ocasiones puede resultar desconcertante, intuitivamente uno supone que estos archivos de la carpeta Assets y otras creadas dentro de la solución son accesibles por medio de

 ApplicationData.Current.LocalFolder

Pero se llevaria una molesta sorpresa, el error que arroja el sistema cuando falla la búsqueda del archivo no es nada diciente

 The system cannot find the file specified. (Exception from HRESULT: 0x80070002)

Todo una experiencia religiosa...

En resumen el error es porque los archivos no se encuentran allí y no es cuestión de la forma en que se accede la carpeta ni de nomenclatura ni nada por el estilo.

Estos archivos agregados a la solución quedan en la carpeta de instalación de la aplicación, la cual desde luego también es un IsolatedStorage y por ende no hay certeza de donde se encuentra realmente.

El mecanismo para lograr acceder al fólder de instalación es sencillo, como es de suponer se hace a través de un StorageFolder, pero no es ninguno de los que se encuentran en

 ApplicationData.Current.LocalFolder

Estos se acceden a través de otro objeto, el cual recomiendo que tengas presente siempre en tus proyectos.

 Package.Current.InstalledLocation

Este objeto lo encuentras fácilmente agregando la siguiente sentencia

 using Windows.ApplicationModel;

De esta forma ya tienes una referencia al fólder de instalación y un camino a todos los archivos y carpetas que contenga internamente.