Exemple #1
0
        /// <summary>
        /// Unpacks this package into the specified directory.
        /// </summary>
        /// <param name="baseDirectory">The directory to use.</param>
        public static Package Unpack(string rootLocation, Stream packageStream)
        {
            XmlReaderSettings settings = new XmlReaderSettings();

            settings.ConformanceLevel = ConformanceLevel.Fragment;
            XmlReader     reader = XmlReader.Create(packageStream, settings);
            XPathDocument doc    = new XPathDocument(reader);

            // Read the name so we can know where to create it.
            var    nav      = doc.CreateNavigator();
            var    nameNode = nav.SelectSingleNode("/Package/@Name");
            string name     = nameNode.Value;

            string packageDir = System.IO.Path.Combine(rootLocation, name);

            System.IO.Directory.CreateDirectory(packageDir);

            Package newPackage = new Package(packageDir, false);

            newPackage.ReadPackage(nav);
            newPackage.SaveManifest();

            return(newPackage);
        }
        /// <summary>
        /// Unpacks this package into the specified directory.
        /// </summary>
        /// <param name="baseDirectory">The directory to use.</param>
        public static Package Unpack(string rootLocation, Stream packageStream)
        {
            XmlReaderSettings settings = new XmlReaderSettings();
            settings.ConformanceLevel = ConformanceLevel.Fragment;
            XmlReader reader = XmlReader.Create(packageStream, settings);
            XPathDocument doc = new XPathDocument(reader);

            // Read the name so we can know where to create it.
            var nav = doc.CreateNavigator();
            var nameNode = nav.SelectSingleNode("/Package/@Name");
            string name = nameNode.Value;

            string packageDir = System.IO.Path.Combine(rootLocation, name);
            System.IO.Directory.CreateDirectory(packageDir);

            Package newPackage = new Package(packageDir, false);
            newPackage.ReadPackage(nav);
            newPackage.SaveManifest();

            return newPackage;
        }