Thursday, August 27, 2009

Location of IsolatedStorageFile

An IsolatedStorageFile is always persisted to a dedicated location by .NET isolated storage API. Each file, when it is first created, will be granted access at least to the current logged-on user plus other requirements. In other words, an IsolatedStorageFile is created based on isolated requirements called IsolatedStorageScope, for example,

  • User + Assembly
  • User + Assembly + Domain
  • Roaming + User + Assembly
  • Roaming + User + Assembly + Domain
  • ...
  • Machine + Assembly +
  • Machine + Assembly + Domain
  • ...
Note that you cannot initialize a storage with IsolatedStorageScope.User and IsolatedStorageScope.Machine together because IsolatedStorageScope.Machine represents All Users which include the current user. But either one of them must be present in the IsolatedStorageScope with others. In addition, you cannot use IsolatedStorageScope.Application if the application is not configured or running as a ClickOnce application, which implies you can only use either IsolatedStorageFile.GetUserStoreForApplication() or IsolatedStorageFile.GetMachineStoreForApplication() for store initialization only when the application is NOT a ClickOnce application.

The exact location to represent the isolated storage "file system" varies from operating systems.

For user scope (IsolatedStorageScope.User) related, the isolated storage is located at

   XP: %USERPROFILE%\Local Settings\Application Data\IsolatedStorage\
Vista: %USERPROFILE%\App Data\Local\IsolatedStorage\ 
For machine or all users scope (IsolatedStorageScope.Machine) related, the isolated storage is located at
   XP: %ALLUSERSPROFILE%\Local Settings\Application Data\IsolatedStorage\
Vista: %ALLUSERSPROFILE%\App Data\Local\IsolatedStorage\ 
All storage entry points (folders) will be placed under the above location(s). Each of entry point or folder represents a store assigned or automatically created by .NET when an IsolatedStorageFile is first created. Then you can create folders or sub-folders relative to that store location. After that, you can even create another IsolatedStorageFiles under those sub-folders.

1 comment:

  1. Maybe the path for IsolatedStorageScope.Machine is not correct. %ALLUSERSPROFILE% on my machine (Win 7) is C:\ProgramData\ and it only contains a folder IsolatedStorage\ but no App Data\. The the path would be %ALLUSERSPROFILE%\IsolatedStorage\.

    ReplyDelete