public static FileSystem load(XmlReader reader) { var fileSystem = new FileSystem(true); while (reader.Name != "filesystem") { reader.Read(); } fileSystem.root = Folder.load(reader); return(fileSystem); }
public static Folder load(XmlReader reader) { while (reader.Name != "folder" || reader.NodeType == XmlNodeType.EndElement) { reader.Read(); if (reader.EOF) { return((Folder)null); } } reader.MoveToAttribute("name"); Folder folder = new Folder(Folder.deFilter(reader.ReadContentAsString())); reader.Read(); while (reader.Name != "folder" && reader.Name != "file") { reader.Read(); if (reader.EOF || reader.Name == "folder" && reader.NodeType == XmlNodeType.EndElement) { return(folder); } } while (reader.Name == "folder") { if (reader.NodeType == XmlNodeType.EndElement) { return(folder); } folder.folders.Add(Folder.load(reader)); reader.Read(); while (reader.Name != "folder" && reader.Name != "file") { reader.Read(); if (reader.EOF || reader.Name == "computer") { return(folder); } } } while (reader.Name != "folder" && reader.Name != "file") { reader.Read(); } while (reader.Name == "file" && reader.NodeType != XmlNodeType.EndElement) { reader.MoveToAttribute("name"); string s = reader.ReadContentAsString(); bool flag = true; if (reader.MoveToAttribute("EduSafe")) { flag = reader.ReadContentAsBoolean(); } string nameEntry = Folder.deFilter(s); reader.MoveToElement(); string dataEntry = Folder.deFilter(reader.ReadElementContentAsString()); if (flag || !Settings.EducationSafeBuild) { folder.files.Add(new FileEntry(dataEntry, nameEntry)); } reader.Read(); while (reader.Name != "folder" && reader.Name != "file") { reader.Read(); } } reader.Read(); return(folder); }