/// <summary> /// remplace une unité de sauvegarde associée au nom passé en paramètre /// </summary> /// <param name="par1name">Nom de la sauvegarde</param> /// <returns></returns> public static bool replaceSaver(string par1name,Saver par2saver) { for (int i = 0; i < list.Count; i++) { if (list[i].Key == par1name) { list[i] = new KeyValuePair<string, Saver>(par1name, par2saver); return true; } } createSaver (par1name, par2saver); return false; }
/// <summary> /// Créer une nouvelle sauvegarde associée au nom passé en paramètre /// </summary> /// <param name="par1name">Nom de la sauvegarde</param> /// <returns></returns> public static bool createSaver(string par1name, Saver par2saver) { if (par2saver.name == par1name) { foreach (KeyValuePair<string, Saver> en in list) { if (en.Key == par1name) return false; } list.Add(new KeyValuePair<string, Saver>(par1name, par2saver)); return true; } else { throw new Exception("Le nom de l'unité de sauvegarde et le nom de la clef doivent correspondre."); } }
/// <summary> /// Charge toutes les unités de sauvegarde en fonction de celle répertoriés dans l'unité de sauvegarde SaverList /// </summary> public static bool load() { Saver l = new Saver("SaverList"); l = l.load(); if (l == null) return false; for (int i = 0; i < l.count(); i++) { string n = l.getDataAsString(i.ToString()); Saver s = new Saver(n); s = s.load(); createSaver(n, s); } return true; }
/// <summary> /// Efface la liste lien avec tout les fichiers de sauvegarde présents dans la mémoire /// Efface la mémoire. /// </summary> public static void reset() { Saver m = getSaver("SaverList"); if (m == null) { m = new Saver("SaverList").load(); if (m == null) return; } using (IsolatedStorageFile storage = IsolatedStorageFile.GetUserStoreForApplication()) { for (int i = 0; i < m.count(); i++) { string n = m.getDataAsString(i.ToString()); if (storage.FileExists(n + ".sav")) storage.DeleteFile(n + ".sav"); } if (storage.FileExists("SaverList" + ".sav")) storage.DeleteFile("SaverList" + ".sav"); list = new List<KeyValuePair<string, Saver>>(); } SaveManager.toReset = true; }
/// <summary> /// Charge les données sauvegardées en mémoire dans le fichier possédant le nom du saver /// </summary> /// <returns></returns> public Saver load() { string par1name = name; IsolatedStorageFile storage = IsolatedStorageFile.GetUserStoreForDomain(); if (storage.FileExists(par1name+".sav")) { try { Stream stream = storage.OpenFile(par1name+".sav", FileMode.Open); byte[] data = new Byte[1024]; stream.Read(data, 0, data.Length); stream.Close(); string s = Encoding.UTF8.GetString(data, 0, data.Length); string[] dat = s.Split("!".ToCharArray()); Saver saver = new Saver(par1name); for (int i = 0; i < dat.Length-1; i++) { if (dat[i].Length > 0) { List<string> da = new List<string>(dat[i].Split("/".ToCharArray())); string key = da[0]; string value = da[1]; saver.addData(key, value); } } storage.Dispose(); return saver; } catch (FormatException) { storage.Dispose(); return null; } } storage.Dispose(); return null; }