mirror of
https://github.com/SabreTools/SabreTools.Serialization.git
synced 2026-04-08 15:22:54 +00:00
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.
40 lines
1.3 KiB
C#
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; }
|
|
}
|
|
}
|