Reading the content of the Xap/Appx and IsoStore in Windows [Phone] 8

By jay at December 20, 2012 09:57 Tags: , , ,

In Windows Phone 8, things got better of the front of reading the file system. It’s actually gotten closer to the Windows 8 with the inclusion of WinRT, and it now possible to read the content of files that were pretty hard (or impossible) to access directly before.

 

Reading the app package content files

There are some times when you need to access the content of the xap directly, and in Windows Phone 7, you were pretty limited to the use of the IsolatedStorage, but really did not have access to the content of the Xap, except for some location such as images or XmlDocument and the SQL CE engine using the appdata:/ scheme.

Things have changed in Windows Phone 8, and here’s how to read the WMAppManifest.xml file by yourself :

   var file = await StorageFile.GetFileFromPathAsync(
      Path.Combine(
         Windows.ApplicationModel.Package.Current.InstalledLocation.Path,   
         "WMAppManifest.xml"
      ) 
   );

   using (var stream = new StreamReader(await file.OpenStreamForReadAsync()))
   {
      var content = await stream.ReadToEndAsync();
   }

That way, you can access anything located in your package, and use it like any other file. Also note that this technique is also working on Windows 8.

 

Reading the content of the IsolatedStorage

The IsolatedStorage class is just a wrapper around the file system that was introduced in .NET a while back, but since it is now possible to access the file system using WinRT, it is possible to read the isolated storage folder content directly.

It’s just a matter of using Windows.Storage.ApplicationData.Current.LocalFolder and replicating the code above, which will make for a very portable code between Windows 8 and Windows Phone 8.

blog comments powered by Disqus

About me

My name is Jerome Laban, I am a Software Architect, C# MVP and .NET enthustiast from Montréal, QC. You will find my blog on this site, where I'm adding my thoughts on current events, or the things I'm working on, such as the Remote Control for Windows Phone.