Files
Matt Nadareski 7689c6dd07 Libraries
This change looks dramatic, but it's just separating out the already-split namespaces into separate top-level folders. In theory, every single one could be built into their own Nuget package. `SabreTools.Serialization` still builds the normal Nuget package that is used by all other projects and includes all namespaces.
2026-03-21 16:26:56 -04:00

47 lines
1.6 KiB
C#

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