This article explains storage in Windows Phone, it will be a local data storage and we will see various methods to use it. Let's get a quick overview of how the data is stored locally in a Windows Phone.
There are two locations in which the data is stored:
- Installation Folder: This is the place from where the application gets all its items for the phone, it is also referred to as the App Data folder. This is a ready-only folder where we can just read the files that are required for installation and we cannot perform any writing operations.
- Local Folder: It is formerly known as Isolated Storage, here we can perform both read and write operations, this is the place we are going to spend most of our time.
There are various methods for addressing storage location:
File Type / API |
Installation Folder |
Local Folder |
Example |
Local Database Data Context |
appdata:/ |
isostore:/ |
MyDataContext db =new MyDataContext("isostore:/mydb.sdf"); |
File access using WP7.1 Isolated Storage API |
Not supported |
StorageFile and StorageFolder APIs |
var isf =IsolatedStorageFile. GetUserStoreForApplication(); |
File access using Windows.Storage APIs via URIs |
ms-appx:/// |
ms-appdata:///local/ |
StorageFile storageFile = await Windows.Storage.StorageFile. GetFileFromApplicationUriAsync (new Uri("ms-appdata:///local/ CaptainsLog.store")); |
File access using Windows.Storage APIs via StorageFolder Refrence |
Windows.Application Model.Package. Current. InstalledLocation |
Windows.Storage. ApplicationData. Current.LocalFolder |
var localFolder = Windows.Storage.ApplicationData. Current.LocalFolder; Windows.Storage.StorageFile storageFile = await localFolder.GetFileAsync ("CaptainsLog.store"); |
Windows Phone 8 File Access Alternatives
Let's have a look at getting a reference of a file by three different ways:
- WP7.1 Isolated Storage APIs
var isf = IsolatedStorageFile.GetUserStoreForApplication();IsolatedStorageFileStream fs = new IsolatedStorageFileStream("CaptainsLog.Store", FileMode.Open, isf);
- WP8 Storage APIs using URI
StorageFile storageFile = await
Windows.Storage.StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appdata:///local/CaptainsLog.store"));
- WP8 Storage APIs
Windows.Storage.StorageFolder localFolder = Windows.Storage.ApplicationData.Current.LocalFolder;Windows.Storage.StorageFile storageFile =localFolder.GetFileAsync("CaptainsLog.store");
So, now we are aware of various types of file handing techniques, in future articles we will learn how to use them individually.