예제 #1
0
        public static FileSystem load(XmlReader reader)
        {
            var fileSystem = new FileSystem(true);

            while (reader.Name != "filesystem")
            {
                reader.Read();
            }
            fileSystem.root = Folder.load(reader);
            return(fileSystem);
        }
예제 #2
0
        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);
        }