Exemple #1
0
        static IPBFile ParseFileNode(XmlNode node)
        {
            IPBFile file = new IPBFile();

            file.Filename = node.SelectSingleNode("filename").InnerText;
            file.Content  = node.SelectSingleNode("content").InnerXml.Replace("\r\n", "");
            file.Path     = node.SelectSingleNode("path").InnerText;

            return(file);
        }
Exemple #2
0
        static void Main(string[] args)
        {
            Console.Clear();
            if (!File.Exists(filename))
            {
                Console.WriteLine("File not exists!");
            }
            else
            {
                XmlDocument doc = new XmlDocument();
                doc.Load(filename);

                XmlNode filesetNode = doc.DocumentElement.SelectSingleNode("fileset");
                if (filesetNode == null)
                {
                    Console.WriteLine("No fileset node on root element!");
                }
                else
                {
                    string directory = Path.Combine(Path.GetDirectoryName(filename), Path.GetFileNameWithoutExtension(filename));
                    if (Directory.Exists(directory))
                    {
                        Directory.Delete(directory, true);
                    }
                    Directory.CreateDirectory(directory);

                    XmlNodeList fileNodes = filesetNode.SelectNodes("file");
                    foreach (XmlNode fileNode in fileNodes)
                    {
                        IPBFile file = ParseFileNode(fileNode);
                        Console.WriteLine("File: {0} | Path: {1} | Content Length: {2}", file.Filename, file.Path, file.Content.Length);

                        string fullPath = Path.Combine(directory, file.Path, file.Filename);
                        Console.WriteLine(fullPath);

                        string fileDir = Path.GetDirectoryName(fullPath);
                        if (!Directory.Exists(fileDir))
                        {
                            Directory.CreateDirectory(fileDir);
                        }

                        using (FileStream stream = File.Create(fullPath))
                        {
                            byte[] buffer = Convert.FromBase64String(file.Content);
                            stream.Write(buffer, 0, buffer.Length);

                            stream.Flush();
                        }

                        Console.WriteLine();
                    }
                }
            }
            //Console.ReadLine();
        }