public static Dictionary <string, string> ParseInfo(string backupFolder) { try { string infoFile = Path.Combine(backupFolder, "Info.plist"); if (!File.Exists(infoFile)) { throw new Exception("No valid backup folder."); } XmlSerializer serializer = new XmlSerializer(typeof(plist)); plist info = (plist)serializer.Deserialize(File.OpenRead(infoFile)); if (info.Item.GetType() != typeof(dict)) { return(null); } dict _dict = (dict)info.Item; Dictionary <string, string> ret = new Dictionary <string, string>(); for (var i = 0; i < _dict.key.Length; i++) { ret.Add(_dict.key[i], _dict.Items[i].ToString()); } return(ret); } catch (Exception) { return(null); } }
// Summary: // Ouvre une PropertyList dans un TextReader et retourne le <dict> de plus haut niveau static public xdict open(TextReader reader) { XmlSerializer serializer = new XmlSerializer(typeof(plist)); plist Info = (plist)serializer.Deserialize(reader); if (Info.Item.GetType() != typeof(dict)) { return(null); } xdict r = new xdict((dict)Info.Item); if (r._dict.key.Length != r._dict.Items.Length) { return(null); } return(r); }