Exemple #1
0
 public Header()
 {
     ArchiveProperties     = null;
     AdditionalStreamsInfo = null;
     MainStreamsInfo       = null;
     FilesInfo             = null;
 }
Exemple #2
0
            public void Parse(Stream hs)
            {
                while (true)
                {
                    PropertyID propertyID = GetPropertyID(this, hs);
                    switch (propertyID)
                    {
                    case PropertyID.kArchiveProperties:
                        ArchiveProperties = new ArchiveProperties();
                        ArchiveProperties.Parse(hs);
                        break;

                    case PropertyID.kAdditionalStreamsInfo:
                        AdditionalStreamsInfo = new StreamsInfo();
                        AdditionalStreamsInfo.Parse(hs);
                        break;

                    case PropertyID.kMainStreamsInfo:
                        MainStreamsInfo = new StreamsInfo();
                        MainStreamsInfo.Parse(hs);
                        break;

                    case PropertyID.kFilesInfo:
                        FilesInfo = new FilesInfo();
                        FilesInfo.Parse(hs);
                        break;

                    case PropertyID.kEnd:
                        return;

                    default:
                        throw new NotImplementedException(propertyID.ToString());
                    }
                }
            }
        public static ArchiveProperties PropertiesFromMap(Dictionary<string, string> properties)
        {
            Contract.Requires(properties != null);

            var result = new ArchiveProperties { Name = properties.GetValue("Path") };
            if (string.IsNullOrEmpty(result.Name)) {
                throw new ArgumentException("Archive properties do not contain path.", nameof(properties));
            }

            result.Type = Archive.StringToType(properties.GetValue("Type"));
            result.Size = SevenZipTools.LongFromString(properties.GetValue("Size"));
            result.PhysicalSize = SevenZipTools.LongFromString(properties.GetValue("Physical Size"));
            result.TotalPhysicalSize = SevenZipTools.LongFromString(properties.GetValue("Total Physical Size"));
            return result;
        }