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

40 lines
1.3 KiB
C#

namespace SabreTools.Data.Models.PKZIP
{
/// <summary>
/// PKZIP local file
/// </summary>
/// <see href="https://petlibrary.tripod.com/ZIP.HTM"/>
/// <see href="https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT"/>
public class LocalFile
{
/// <summary>
/// Local file header
/// </summary>
public LocalFileHeader LocalFileHeader { get; set; } = new();
/// <summary>
/// Encryption header
/// </summary>
/// TODO: Determine the model for the encryption headers
public byte[] EncryptionHeaders { get; set; } = [];
/// <summary>
/// File data, appears after the encryption header
/// if it exists or after the local file header otherwise
/// </summary>
public byte[] FileData { get; set; } = [];
/// <summary>
/// Data descriptors, appears after the file data
/// </summary>
/// <remarks>Cannot exist if <see cref="ZIP64DataDescriptor"/> is populated</remarks>
public DataDescriptor? DataDescriptor { get; set; }
/// <summary>
/// ZIP64 Data descriptors, appears after the file data
/// </summary>
/// <remarks>Cannot exist if <see cref="DataDescriptor"/> is populated</remarks>
public DataDescriptor64? ZIP64DataDescriptor { get; set; }
}
}