In memory archive implementation for the IThreeDXMLArchive interface.
Inheritance: IThreeDXMLArchive
        /// <summary>
        /// Creates a new in memory archive from a given stream of zipped data.
        /// </summary>
        /// <param name="data">the zip compressed 3dxml archive</param>
        /// <returns>a new instance of a ThreeDXMLFile</returns>
        public static IThreeDXMLArchive Create(Stream data)
        {
            var dict = new Dictionary<string, Stream>();
            using (var zipArchive = ZipFile.Read(data))
            {
                foreach (var entry in zipArchive.Where(entry => !entry.IsDirectory))
                {
                    var name = entry.FileName.ToLower();
                    var fileStream = new MemoryStream();
                    entry.Extract(fileStream);
                    dict.Add(name, fileStream);
                }
            }
            var archive = new ThreeDXMLFile(dict);
            data.Close();

            return archive;
        }
Exemple #2
0
        /// <summary>
        /// Creates a new in memory archive from a given stream of zipped data.
        /// </summary>
        /// <param name="data">the zip compressed 3dxml archive</param>
        /// <returns>a new instance of a ThreeDXMLFile</returns>
        public static IThreeDXMLArchive Create(Stream data)
        {
            var dict = new Dictionary <string, Stream>();

            using (var zipArchive = ZipFile.Read(data))
            {
                foreach (var entry in zipArchive.Where(entry => !entry.IsDirectory))
                {
                    var name       = entry.FileName.ToLower();
                    var fileStream = new MemoryStream();
                    entry.Extract(fileStream);
                    dict.Add(name, fileStream);
                }
            }
            var archive = new ThreeDXMLFile(dict);

            data.Close();

            return(archive);
        }