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);
            }
        }
Beispiel #2
0
        // 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);
        }