IsolatedStorageFile Class
Represents an isolated storage area containing files and directories.
Namespace: System.IO.IsolatedStorage
Assembly: mscorlib (in mscorlib.dll)
The IsolatedStorageFile type exposes the following members.
Name | Description | |
---|---|---|
AvailableFreeSpace | Gets a value that represents the amount of free space available for isolated storage. | |
IsEnabled | Gets a value that indicates whether isolated storage is enabled. | |
Quota | Gets a value that represents the maximum amount of space available for isolated storage. | |
UsedSize | Gets a value that represents the amount of the space used for isolated storage. |
Name | Description | |
---|---|---|
CopyFile(String, String) | Copies an existing file to a new file. | |
CopyFile(String, String, Boolean) | Copies an existing file to a new file, and optionally overwrites an existing file. | |
CreateDirectory | Creates a directory in the isolated storage scope. | |
CreateFile | Creates a file in the isolated store. | |
DeleteDirectory | Deletes a directory in the isolated storage scope. | |
DeleteFile | Deletes a file in the isolated store. | |
DirectoryExists | Determines whether the specified path refers to an existing directory in the isolated store. | |
Dispose | Releases all resources used by the IsolatedStorageFile. | |
Equals(Object) | Determines whether the specified Object is equal to the current Object. (Inherited from Object.) | |
FileExists | Determines whether the specified path refers to an existing file in the isolated store. | |
Finalize | Allows an object to try to free resources and perform other cleanup operations before the Object is reclaimed by garbage collection. (Inherited from Object.) | |
GetCreationTime | Returns the creation date and time of a specified file or directory. | |
GetDirectoryNames | Enumerates the directories in the root of an isolated store. | |
GetDirectoryNames(String) | Enumerates directories in an isolated storage scope that match a given pattern. | |
GetFileNames | Obtains the names of files in the root of an isolated store. | |
GetFileNames(String) | Enumerates files in isolated storage scope that match a given pattern. | |
GetHashCode | Serves as a hash function for a particular type. (Inherited from Object.) | |
GetLastAccessTime | Returns the date and time a specified file or directory was last accessed. | |
GetLastWriteTime | Returns the date and time a specified file or directory was last written to. | |
GetType | Gets the Type of the current instance. (Inherited from Object.) | |
GetUserStoreForApplication | Obtains user-scoped isolated storage for use by an application that calls from the virtual host domain. | |
GetUserStoreForSite | Obtains a user-scoped isolated store for use by all applications in a virtual host domain. | |
IncreaseQuotaTo | Enables an application to explicitly request a larger quota size, in bytes. | |
MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) | |
MoveDirectory | Moves a specified directory and its contents to a new location. | |
MoveFile | Moves a specified file to a new location, and optionally lets you specify a new file name. | |
OpenFile(String, FileMode) | Opens a file in the specified mode. | |
OpenFile(String, FileMode, FileAccess) | Opens a file in the specified mode with the specified file access. | |
OpenFile(String, FileMode, FileAccess, FileShare) | Opens a file in the specified mode with read, write, or read/write access and the specified sharing option. | |
Remove | Removes the isolated storage scope and all its contents. | |
ToString | Returns a string that represents the current object. (Inherited from Object.) |
This class abstracts the virtual file system for isolated storage. An IsolatedStorageFile object corresponds to a specific isolated storage scope, where files represented by IsolatedStorageFileStream objects exist. Applications can use isolated storage to save data in their own isolated portion of the file system, without having to specify a particular path within the file system.
The root of the virtual file system is located in a per-user, obfuscated folder on the physical file system. Each unique identifier provided by the host maps to a different root, which gives each application its own virtual file system. An application cannot navigate out of its own file system into another.
Since isolated stores are scoped to particular assemblies, most other managed code will not be able to access your code's data (highly trusted managed code and administration tools can access stores from other assemblies). Unmanaged code can access any isolated stores.
The following example shows how to use an IsolatedStorageFile object for most I/O tasks.
Imports System Imports System.Windows Imports System.Windows.Controls Imports System.Windows.Input Imports System.IO Imports System.IO.IsolatedStorage Imports System.Collections Imports System.Text Class Example Public Shared Sub Demo(ByVal outputBlock As TextBlock) ' Obtain an isolated store for an application. Try Using store As IsolatedStorageFile = _ IsolatedStorageFile.GetUserStoreForApplication() ' Use a StringBuilder to construct output. Dim sb As StringBuilder = New StringBuilder ' Create three directories in the root. store.CreateDirectory("MyApp1") store.CreateDirectory("MyApp2") store.CreateDirectory("MyApp3") ' Create three subdirectories under MyApp1. Dim subdirectory1 As String = Path.Combine("MyApp1", "SubDir1") Dim subdirectory2 As String = Path.Combine("MyApp1", "SubDir2") Dim subdirectory3 As String = Path.Combine("MyApp1", "SubDir3") store.CreateDirectory(subdirectory1) store.CreateDirectory(subdirectory2) store.CreateDirectory(subdirectory3) ' Create a file in the root. Dim rootFile As IsolatedStorageFileStream = _ store.CreateFile("InTheRoot.txt") rootFile.Close() ' Create a file in a subdirectory. Dim subDirFile As IsolatedStorageFileStream = _ store.CreateFile(Path.Combine(subdirectory1, "MyApp1A.txt")) subDirFile.Close() ' Gather file information. Dim directoriesInTheRoot() As String = store.GetDirectoryNames Dim filesInTheRoot() As String = store.GetFileNames Dim searchpath As String = Path.Combine(subdirectory1, "*.*") Dim filesInSubDirs() As String = store.GetFileNames(searchpath) ' Find subdirectories within the MyApp1 ' directory using the multi character '*' wildcard. Dim subDirectories() As String = _ store.GetDirectoryNames(Path.Combine("MyApp1", "*")) ' List file infomration ' List the directories in the root. sb.AppendLine("Directories in root:") For Each dir As String In directoriesInTheRoot sb.AppendLine((" - " + dir)) Next sb.AppendLine() ' List the subdirectories under MyApp1. sb.AppendLine("Directories under MyApp1:") For Each sDir As String In subDirectories sb.AppendLine((" - " + sDir)) Next sb.AppendLine() ' List files in the root. sb.AppendLine("Files in the root:") For Each fileName As String In filesInTheRoot sb.AppendLine((" - " + fileName)) Next sb.AppendLine() ' List files in MyApp1\SubDir1. sb.AppendLine("Files in MyApp1\SubDir1:") For Each fileName As String In filesInSubDirs sb.AppendLine((" - " + fileName)) Next sb.AppendLine() ' Write to an existing file: MyApp1\SubDir1\MyApp1A.txt ' Determine if the file exists before writing to it. Dim filePath As String = Path.Combine(subdirectory1, "MyApp1A.txt") If store.FileExists(filePath) Then Try Using sw As StreamWriter = _ New StreamWriter(store.OpenFile(filePath, FileMode.Open, FileAccess.Write)) sw.WriteLine("To do list:") sw.WriteLine("1. Buy supplies.") End Using Catch ex As IsolatedStorageException sb.AppendLine(ex.Message) End Try Else sb.AppendLine((filePath + "does not exist")) End If ' Read the contents of the file: MyApp1\SubDir1\MyApp1A.txt Try Using reader As StreamReader = _ New StreamReader(store.OpenFile(filePath, FileMode.Open, FileAccess.Read)) Dim contents As String = reader.ReadToEnd sb.AppendLine(filePath + " contents:") sb.AppendLine(contents) End Using Catch ex As IsolatedStorageException sb.Append(ex.Message) End Try ' Delete a file. Try If store.FileExists(filePath) Then store.DeleteFile(filePath) End If Catch ex As IsolatedStorageException sb.AppendLine(ex.Message) End Try ' Delete a specific directory. Dim dirDelete As String = Path.Combine("MyApp1", "SubDir3") Try If store.DirectoryExists(dirDelete) Then store.DeleteDirectory(dirDelete) End If Catch ex As IsolatedStorageException sb.AppendLine(ex.Message) End Try sb.AppendLine() ' remove the store store.Remove() sb.AppendLine("Store removed.") outputBlock.Text = sb.ToString() End Using Catch Ex As IsolatedStorageException ' TODO: Handle that store was unable to be accessed. End Try End Sub End Class ' Quota status in increase examples Class StoreQuota ' Assumes an event handler for the MouseLeftbuttonUp ' event is defined for a control named 'IncreaseQuota' ' In the control's XAML: MouseLeftButtonUp="IncreaseQuota_OnLeftMouseButtonUp" Public Sub IncreaseQuota_OnClick(ByVal sender As Object, ByVal e As MouseEventArgs) ' Obtain an isolated store for an application. Try Using store As IsolatedStorageFile = IsolatedStorageFile.GetUserStoreForApplication() ' Request 5MB more space in bytes. Dim spaceToAdd As Int64 = 5242880 Dim curAvail As Int64 = store.AvailableFreeSpace ' If available space is less than ' what is requested, try to increase. If (curAvail < spaceToAdd) Then ' Request more quota space. If Not store.IncreaseQuotaTo((store.Quota + spaceToAdd)) Then ' The user clicked NO to the ' host's prompt to approve the quota increase. Else ' The user clicked YES to the ' host's prompt to approve the quota increase. End If End If End Using Catch Ex As IsolatedStorageException ' TODO: Handle that store could not be accessed. End Try End Sub Public Shared Sub ShowIsoStoreStatus(ByVal inputBlock As TextBlock) ' Obtain an isolated store for an application. Try Using store As IsolatedStorageFile = _ IsolatedStorageFile.GetUserStoreForApplication() Dim spaceUsed As String = (store.Quota - store.AvailableFreeSpace).ToString Dim spaceAvailable As String = store.AvailableFreeSpace.ToString Dim curQuota As String = store.Quota.ToString inputBlock.Text = String.Format("Quota: {0} bytes, Used: {1} bytes, Available: {2} bytes", _ curQuota, spaceUsed, spaceAvailable) End Using Catch Ex As IsolatedStorageException inputBlock.Text = "Unable to access store." End Try End Sub End Class ' This example's Example.Demo method ' produces the following output: ' ----- ' Directories in root: ' - MyApp1 ' - MyApp2 ' - MyApp3 ' Directories under MyApp1: ' - SubDir1 ' - SubDir2 ' - SubDir3 ' Files in the root: ' - InTheRoot.txt ' Files in MyApp1\SubDir1: ' - MyApp1A.txt ' MyApp1\SubDir1\MyApp1A.txt contents: ' To do list: ' 1. Buy supplies. ' Store removed. ' -----
For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.