Acceder a los archivos de instalación en aplicaciones WinRT - Windows Store

Acceder a los archivos de instalación en aplicaciones WinRT - Windows Store

  • Comments 0

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.

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.

Si tienen preguntas no olviden etiquetarme como Juan Carlos Ruiz - Arquitecto de Software