The new Windows Phone SDK includes a tool that allows the developer to easily backup and restore application-specific isolated storage. This tool is located here: C:\Program Files [(x86) - for 64-bit systems]\Microsoft SDKs\Windows Phone\v7.1\Tools\IsolatedStorageExplorerTool. It is a command line application that currently doesn't have a GUI. It works both for applications loaded in the emulator and on a physical device.
NOTE: There is one restriction to using the ISETool - you can only work with the Isolated Storage contents that belong to your own (sideloaded) applications. You cannot access files stored by downloaded and OEM applications because of Group Policy settings.
There are three basic operations that can be performed on the Isolated Storage:
- Take snapshot (ts) - copy the entire contents of the Isolated Storage for the specified application to a local (desktop) folder.
- Restore snapshot (rs) - copy the contents of a local folder to the emualator or a physical device.
- List the folder structure (dir) - list all contents, with subfolders, of the Isolated Storage.
The storage type is specified by two parameters - xd and de. xd represents the emulator and de - a physical device that is currently connected to the development machine.
The next required parameter is the application identifier, that is the GUID declared in WMAppManifest.xml. You need to simply copy and paste that GUID without any additional formatting.
Let's look at the example where I am copying the contents of the Isolated Storage to the local machine. The command would look like this:
ISETool.exe ts de bc4f319a-9a9a-df11-a490-00237de2db9e D:\Temporary
This command will take a snapshot from the device and store it in D:\Temporary\IsolatedStorage. The storage folder is created automatically.
NOTE: The pre-built Shared folders are also copied with the rest of the files, if those were not removed by the developer.
When it comes to putting the snapshot back, you can add more files, as long as those fit the memory allocation for the application.
NOTE: By default, there are no storage restrictions. However, you need to make sure that your application is not monopolizing storage space.
The command is exactly the same as the one for taking the snapshot, but with the rs parameter.
ISETool.exe rs de bc4f319a-9a9a-df11-a490-00237de2db9e D:\Temporary
The path at the end will be the source folder, and all files there will be transferred to the device (notice the de parameter).
Listing directories can be simply done by:
ISETool.exe dir de 87fbb02b-db71-4a52-bfcb-f7759f84a465
This ultimately produces a generalized list of files in the root folder. Directories will be marked with a <DIR> prefix:
Notice that Shared is another folder, so to list its context, the dir parameter gets a path suffix:
ISETool.exe dir:"\Shared" de 87fbb02b-db71-4a52-bfcb-f7759f84a465
Now I will be able to list the contents, and if necessary - navigate deeper through the folder structure.
I am currently working on an application that will generalize everything in a single GUI, making it easier to view storage components. Something like this, only using the ISETool.