public static MWRFileBase Deserialize(string input) { XmlDocument xmlDoc = new XmlDocument(); xmlDoc.LoadXml("<root>" + input + "</root>"); XmlNode rootNode = xmlDoc.FirstChild.ChildNodes[0]; MWRFileBase Root; if (rootNode.Name == "File") { Root = new MWRFileInfo(rootNode.Attributes["Name"].Value, int.Parse(rootNode.Attributes["Size"].Value)); } else { Root = new MWRFileDirectory(rootNode.Attributes["Name"].Value); FillChilds(rootNode.ChildNodes, Root as MWRFileDirectory); } return Root; }
private void GetObject(DirectoryInfo di, MWRFileDirectory root) { DirectoryInfo [] dSubs = di.GetDirectories(); foreach (DirectoryInfo dsubInfo in dSubs) { MWRFileDirectory fDir = new MWRFileDirectory(dsubInfo.Name); GetObject(dsubInfo, fDir); root.SubFiles.Add(fDir); } FileInfo [] fInfos = di.GetFiles(); foreach (FileInfo f in fInfos) { MWRFileInfo fFile = new MWRFileInfo(f.Name, f.Length); root.SubFiles.Add(fFile); } }