Le stockage isolé est utilisé pour stocker des données locales sur un Windows Phone. Il est "isolé" car d'autres applications ne peuvent pas accéder à ces données. Dans ce didacticiel, vous obtiendrez une vue d'ensemble du stockage isolé et découvrirez comment vous en servir pour stocker des données plus sûrement sur Windows Phone 8..
L'architecture mobile du stockage isolé est similaire aux applications Silverlight sous Windows. Toutes les opérations d'E / S sont limitées au stockage isolé et ne disposent pas d'accès direct au système de fichiers du système d'exploitation sous-jacent, ce qui contribue à la sécurité et empêche les accès non autorisés et la corruption de données provenant d'autres applications. Si vous souhaitez partager des données entre deux applications, vous aurez besoin d'un type de service basé sur le cloud pouvant partager ces données pour vous..
Le dossier local est le dossier racine du magasin de données de votre application. Il existe deux manières de stocker des données localement. La première consiste à utiliser une collection de paires nom / valeur appelée IsolatedStorageSettings
. L’autre méthode consiste à créer des fichiers et des dossiers réels appelés IsolatedStorageFile
. Voici quelques points à mentionner sur le stockage isolé:
IsolatedStoragePermission
objets.IsolatedStorageException
une exception est levée.IsolatedStorageFilePermission
décide d'accorder ou non l'autorisation au fichier ou au répertoire. Utilisez le isostore
ou ms-appdata
Noms de schéma d'URI lors de l'adressage du dossier local dans un chemin. Ces deux schémas d'URI vous permettent d'accéder au dossier local, mais ils ne peuvent pas être utilisés de manière interchangeable.. ms-appdata
est utilisé pour adresser la racine du dossier local avec les API, tandis que isostore
est utilisé pour adresser la racine du dossier local. L'exemple suivant montre ceci.
// Créer une base de données locale dans le dossier local avec le schéma d'isostore URI. MyDataContext db = new MyDataContext ("isostore: /mydb.sdf"); // Récupère un fichier du dossier local avec le schéma d'URI ms-appdata. var file = attend Windows.StorageFile.GetFileFromApplicationUriAsync (nouvel Uri ("ms-appdata: ///local/AppConfigSettings.xml"));
ms-appdata
nécessite trois barres obliques (///
) et isostore
nécessite seulement une barre oblique (/
). La longueur totale du chemin pour l'un des deux schémas d'URI ne peut pas dépasser 185 caractères.
IsolatedStorageSettings
Le moyen le plus simple de stocker des données dans un stockage isolé consiste à utiliser le IsolatedStorageSettings
classe, qui est un dictionnaire
qui stocke les paires clé-valeur dans un stockage isolé. IsolatedStorageSettings
est généralement utilisé pour enregistrer des paramètres, tels que le nombre d'images à afficher par page, les options de mise en page, etc. Les données sauvegardées dans IsolatedStorageSettings
persiste après le lancement d'applications.
Si vous voulez juste stocker des informations de paramètres comme Nom d'utilisateur = "Fred"
, alors vous pouvez utiliser le Paramètres de l'application
objet en stockage isolé. Il est utilisé de la même manière que vous utiliseriez un dictionnaire. le saveString
méthode peut être utilisée pour enregistrer une valeur de chaîne message
pour la clé prénom
.
void saveString (message chaîne, nom chaîne) IsolatedStorageSettings.ApplicationSettings [nom] = message; IsolatedStorageSettings.ApplicationSettings.Save ();
Le stockage fonctionne comme un dictionnaire mais n'oubliez pas d'appeler sauvegarder
quand vous avez fini d'ajouter des clés.
Pour récupérer les valeurs des paramètres, vous pouvez utiliser le loadString
méthode qui prend la clé des paramètres enregistrés en tant que paramètre et renvoie la valeur si la clé existe.
string loadString (nom de chaîne) if (IsolatedStorageSettings.ApplicationSettings.Contains (name)) return (string) IsolatedStorageSettings.ApplicationSettings [nom]; else return null;
Testez si la clé existe avant d'essayer de la trouver. Si vous essayez d'obtenir la valeur d'une clé inexistante, une exception sera levée..
Une bonne pratique consiste à créer une classe statique spéciale contenant les paramètres de votre application. Cela facilite l'accès à n'importe quelle propriété de votre application à tout moment..
Si vous travaillez sur un projet d’application Windows universelle, utilisez IsolatedStorageSettings.ApplicationSettings
donnera une erreur de syntaxe. Vous devez le remplacer par Windows.Storage.ApplicationData.Current.LocalSettings
.
IsolatedStorageFile
IsolatedStorageFile
est le mécanisme que vous pouvez utiliser pour stocker des fichiers sur le périphérique d'un utilisateur. Vous pouvez effectuer diverses opérations sur le stockage isolé, telles que la création de dossiers et de fichiers, l'écriture dans un fichier, la lecture de données, la suppression de fichiers, etc..
Ces fichiers et dossiers ne sont pas accessibles aux autres applications installées sur le périphérique de l'utilisateur. le IsolatedStorageFileStream
La classe est utilisée pour lire, écrire et créer des fichiers dans un stockage isolé. Cette classe s'étend FileStream
, ce qui signifie que vous pouvez utiliser une instance de IsolatedStorageFileStream
dans la plupart des situations où un FileStream
exemple, pourrait être utilisé, par exemple pour construire un StreamReader
ou StreamWriter
.
L'extrait de code suivant vous montre comment écrire dans un fichier dans un stockage isolé. le saveGameToIsolatedStorage
fonction crée un nouveau fichier dans un stockage isolé et enregistre la chaîne message
en cela.
saveGameToIsolatedStorage (string message) en utilisant (IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication ()) en utilisant un en-tête writer. writer.WriteLine (message); // enregistrer le rédacteur du message.Fermer ();
le loadString
function lit et retourne le texte contenu dans le fichier. La fonction utilise Le fichier existe
vérifier d'abord si le fichier existe dans un stockage isolé. Il utilise ensuite une instance de StreamReader
lire le fichier.
chaîne privée loadString () chaîne result = null; using (IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication ()) if (isf.FileExists ("MonFichier.store") en utilisant (IsolatedStorageFileStream rawStream = isf.OpenFile ("fichier, System.IO.FileMode.Open)") StreamReader (rawStream); result = reader.ReadLine (); reader.Close (); return result;
Le stockage isolé n'est pas disponible pour les applications du Windows Store. À la place, utilisez les classes de données d’application dans Windows.Storage
Espaces de noms inclus dans l'API Windows Runtime pour stocker des données et des fichiers locaux.
Il est recommandé de se débarrasser des instances de IsolatedStorageFile
et IsolatedStorageFileStream
quand ils ne sont plus nécessaires. le en utilisant
déclaration le fait automatiquement pour vous et son utilisation est considérée comme une bonne pratique.
Pour écraser le contenu d’un fichier existant, utilisez une instance de StreamWriter
classe pour ouvrir le fichier. Les paramètres FileMode.Open
et FileAccess.Write
sont passés pour ouvrir le fichier avec un accès en écriture. Cela écrasera le contenu existant avec de nouvelles données.
IsolatedStorageFile myIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication (); if (myIsolatedStorage.FileExists (nom du fichier)) using (StreamWriter writeFile = new StreamWriter (new IsolatedStorageFileStream (nom du fichier, FileMode.Open, FileAccess.Write, myIsolatedStorage)))) string stringTextData = "Apprend à coder avec Tuts +"; writeFile.WriteLine (someTextData); writeFile.Close ();
L'ajout de données à un fichier existant est très similaire à l'écriture de données dans un fichier existant. La seule modification nécessaire consiste à définir le mode de fichier sur FileMode.Append
.
IsolatedStorageFile myIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication (); if (myIsolatedStorage.FileExists (nom du fichier)) if (myIsolatedStorage.FileExists (nom du fichier)) en utilisant (StreamWriter writeFile = new StreamWriter (new IsolatedStorageFileStream (nomFichier, FileMode.Append, FileAccess.Write, myIsolatedStorage)) Utilisez Tuts + pour apprendre des compétences créatives, façonnez votre avenir "; writeFile.WriteLine (someTextData); writeFile.Close ();
Pour supprimer un fichier texte, vérifions d’abord si le fichier texte existe dans un stockage isolé, puis utilisons Supprimer le fichier
supprimer le fichier.
IsolatedStorageFile myIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication (); if (myIsolatedStorage.FileExists (nom du fichier)) myIsolatedStorage.DeleteFile (nom du fichier);
Je vous encourage à explorer l'exemple d'application de ce didacticiel pour savoir comment lire, écrire et ajouter des données à un fichier..
Lors du débogage d'une application, vous devrez peut-être vérifier les fichiers et les dossiers enregistrés dans le stockage isolé de votre application pour vérifier que les fichiers corrects sont en cours d'enregistrement au bon emplacement. Les émulateurs et les appareils exécutant Windows Phone 8 ou version ultérieure peuvent utiliser Windows Phone Power Tools, un outil graphique permettant d'accéder au stockage isolé d'applications..
Une autre option utilise le Explorateur de stockage isolé ou ISETool, un outil de ligne de commande installé avec le kit de développement logiciel Windows Phone. Vous pouvez utiliser ISETool pour répertorier, copier et remplacer des fichiers et des répertoires dans le dossier local de votre application..
ISETool peut être utilisé avec n'importe quel périphérique ou émulateur et est généralement installé à l'emplacement suivant:
Fichiers de programme (x86) \ MicrosoftSDKs \ WindowsPhone \ v8.0 \ Tools \ IsolatedStorageExplorerTool
Voici quelques points à noter lorsque vous utilisez ISETool:
IsolatedStorageSettings
classe utilisant ISETool.Pour utiliser ISETool, vous devez utiliser la syntaxe suivante:
ISETool.exe[ ]
Voici quelques choses à faire avec ISETool.
ISETool.exe est xd f8ce6878-0aeb-497f-bcf4-65be961d4bba c: \ data \ myfiles
Répétez les trois étapes précédentes et utilisez la commande suivante pour remplacer les fichiers du stockage isolé de l'application..
ISETool.exe rs xd f8ce6878-0aeb-497f-bcf4-65be961d4bba “C: \ Data \ My Files”
Si vous voulez en savoir plus sur ISETool, je vous suggère de lire un autre article sur l’utilisation de ISETool..
Nous avons deux mécanismes simples disponibles sur Windows Phone, IsolatedStorageSettings
et IsolatedStorageFile
. Le stockage isolé représente une zone de stockage contenant des fichiers et des répertoires auxquels d'autres applications ne peuvent pas accéder. Le stockage isolé est utile dans de nombreuses situations. N'hésitez pas à télécharger les fichiers sources du didacticiel à utiliser comme référence.