public Header() { ArchiveProperties = null; AdditionalStreamsInfo = null; MainStreamsInfo = null; FilesInfo = null; }
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; }