// 指定特定存档对象,将其替代原有对象(如果有的话),并从文件读取到这个对象 public static void LoadTo(ISaveData instance) { var saveTag = instance.SaveTag(); if (_fileNames.ContainsKey(saveTag)) { var path = GetPath(_fileNames[saveTag]); if (File.Exists(path)) { instance.LoadFromJson(AESUtils.AESDecrypt(File.ReadAllBytes(path))); } } }
static void ClearFilesByIndexFile(string path) { if (File.Exists(path)) { var json = AESUtils.AESDecrypt(File.ReadAllBytes(path)); var data = JsonMapper.ToObject(json); foreach (var key in data.Keys) { File.Delete(GetPath(data.TryGetString(key))); } File.Delete(path); } }
// 从文件读取索引 static void LoadFileNames() { var indexFilePath = GetPath(_saveFile); if (File.Exists(indexFilePath)) { byte[] bytes = File.ReadAllBytes(indexFilePath); if (bytes.Length > 0) { var json = AESUtils.AESDecrypt(bytes); var data = JsonMapper.ToObject(json); foreach (var key in data.Keys) { _fileNames.Add(key, data.TryGetString(key)); } } } }