namespace SabreTools.Data.Models.PKZIP { /// /// Represents a single ZIP/ZIP64 archive /// /// PKZIP archives are meant to be read from the end public class Archive { /// /// Local file entries /// public LocalFile[]? LocalFiles { get; set; } /// /// Optional archive decryption header, appears after all entries /// /// TODO: Determine the model public byte[] ArchiveDecryptionHeader { get; set; } = []; /// /// Optional archive extra data record, appears after either /// the archive decryption header or after all entries /// public ArchiveExtraDataRecord? ArchiveExtraDataRecord { get; set; } /// /// Central directory headers in sequential order /// public CentralDirectoryFileHeader[]? CentralDirectoryHeaders { get; set; } /// /// Optional ZIP64 end of central directory record /// public EndOfCentralDirectoryRecord64? ZIP64EndOfCentralDirectoryRecord { get; set; } /// /// Optional ZIP64 end of central directory locator /// public EndOfCentralDirectoryLocator64? ZIP64EndOfCentralDirectoryLocator { get; set; } /// /// Required end of central directory record, always must be last /// public EndOfCentralDirectoryRecord? EndOfCentralDirectoryRecord { get; set; } } }