Comment : créer des fichiers et des répertoires dans un stockage isolé
Mise à jour : novembre 2007
Après avoir obtenu un magasin, vous pouvez créer des répertoires et des fichiers pour stocker des données. Dans un magasin, les noms de fichier et de répertoire sont spécifiés par rapport à la racine du système de fichiers virtuel.
Pour créer un répertoire, utilisez la méthode d'instance CreateDirectory de IsolatedStorageFile. Si vous spécifiez un sous-répertoire d'un répertoire non créé, ces deux répertoires sont créés. Si vous spécifiez un répertoire existant, aucune exception n'est générée. Toutefois, si vous spécifiez un nom de répertoire qui contient des caractères non valides, une exception IsolatedStorageException est levée.
Pour créer et ouvrir un fichier, utilisez l'un des constructeurs IsolatedStorageFileStream, en passant le nom de fichier, la valeur OpenOrCreate de FileMode et le magasin dans lequel vous souhaitez créer le fichier. Vous pouvez ensuite effectuer les mêmes opérations avec les données que celles effectuées dans un flux de fichier (lecture, recherche et écriture, par exemple). Le constructeur IsolatedStorageFileStream peut également être utilisé pour ouvrir un fichier à d'autres fins.
Vous pouvez créer ou ouvrir des fichiers sans devoir obtenir préalablement un magasin, en utilisant l'un des constructeurs IsolatedStorageFileStream n'acceptant pas d'argument IsolatedStorageFile. Lorsque vous utilisez ce type de constructeur, le fichier est créé dans le magasin de domaine pour le fichier.
Dans les systèmes de fichiers Windows, les noms de fichiers et de répertoires de stockage isolé ne respectent pas la casse, lors de la comparaison de noms. Ainsi, si vous créez un fichier intitulé ThisFile.txt et que vous ouvrez ensuite un autre fichier intitulé THISFILE.TXT, un seul fichier est créé. Le nom de fichier est affiché selon sa casse d'origine.
CreatingFilesAndDirectories, exemple
L'exemple de code suivant illustre la création de fichiers et de répertoires dans un magasin isolé. Premièrement, un magasin isolé par utilisateur, par domaine et par assembly est extrait et placé dans la variable isoStore. La méthode CreateDirectory définit quelques répertoires distincts et la méthode IsolatedStorageFileStream crée quelques fichiers dans ces répertoires.
Imports System
Imports System.IO
Imports System.IO.IsolatedStorage
Public Module modmain
Sub Main()
' Get an isolated store for user, domain, and assembly and put it into
' an IsolatedStorageFile object.
Dim isoStore As IsolatedStorageFile
isoStore = IsolatedStorageFile.GetStore(IsolatedStorageScope.User Or IsolatedStorageScope.Assembly Or IsolatedStorageScope.Domain, Nothing, Nothing)
' This code creates a few different directories.
isoStore.CreateDirectory("TopLevelDirectory")
isoStore.CreateDirectory("TopLevelDirectory/SecondLevel")
' This code creates two new directories, one inside the other.
isoStore.CreateDirectory("AnotherTopLevelDirectory/InsideDirectory")
' This file is placed in the root.
Dim isoStream1 As New IsolatedStorageFileStream("InTheRoot.txt", FileMode.Create, isoStore)
Console.WriteLine("Created a new file in the root.")
isoStream1.Close()
' This file is placed in the InsideDirectory.
Dim isoStream2 As New IsolatedStorageFileStream("AnotherTopLevelDirectory/InsideDirectory/HereIAm.txt", FileMode.Create, isoStore)
Console.WriteLine("Created a new file in the root.")
isoStream2.Close()
Console.WriteLine("Created a new file in the InsideDirectory.")
End Sub
End Module
using System;
using System.IO;
using System.IO.IsolatedStorage;
public class CreatingFilesDirectories{
public static void Main(){
// Get a new isolated store for this user, domain, and assembly.
// Put the store into an IsolatedStorageFile object.
IsolatedStorageFile isoStore = IsolatedStorageFile.GetStore(IsolatedStorageScope.User | IsolatedStorageScope.Domain | IsolatedStorageScope.Assembly, null, null);
// This code creates a few different directories.
isoStore.CreateDirectory("TopLevelDirectory");
isoStore.CreateDirectory("TopLevelDirectory/SecondLevel");
// This code creates two new directories, one inside the other.
isoStore.CreateDirectory("AnotherTopLevelDirectory/InsideDirectory");
// This file is placed in the root.
IsolatedStorageFileStream isoStream1 = new IsolatedStorageFileStream("InTheRoot.txt", FileMode.Create, isoStore);
Console.WriteLine("Created a new file in the root.");
isoStream1.Close();
// This file is placed in the InsideDirectory.
IsolatedStorageFileStream isoStream2 = new IsolatedStorageFileStream("AnotherTopLevelDirectory/InsideDirectory/HereIAm.txt", FileMode.Create, isoStore);
isoStream2.Close();
Console.WriteLine("Created a new file in the InsideDirectory.");
}// End of Main.
}