File: System\IO\Compression\ZipBlocks.FieldLengths.cs
Web Access
Project: src\src\libraries\System.IO.Compression\src\System.IO.Compression.csproj (System.IO.Compression)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
 
namespace System.IO.Compression
{
    internal partial struct ZipGenericExtraField
    {
        private static class FieldLengths
        {
            public const int Tag = sizeof(ushort);
            public const int Size = sizeof(ushort);
        }
    }
 
    internal partial struct Zip64ExtraField
    {
        internal static class FieldLengths
        {
            public const int UncompressedSize = sizeof(long);
            public const int CompressedSize = sizeof(long);
            public const int LocalHeaderOffset = sizeof(long);
            public const int StartDiskNumber = sizeof(uint);
        }
    }
 
    internal partial struct Zip64EndOfCentralDirectoryLocator
    {
        internal static class FieldLengths
        {
            public static readonly int Signature = SignatureConstantBytes.Length;
            public const int NumberOfDiskWithZip64EOCD = sizeof(uint);
            public const int OffsetOfZip64EOCD = sizeof(ulong);
            public const int TotalNumberOfDisks = sizeof(uint);
        }
    }
 
    internal partial struct Zip64EndOfCentralDirectoryRecord
    {
        private static class FieldLengths
        {
            public static readonly int Signature = SignatureConstantBytes.Length;
            public const int SizeOfThisRecord = sizeof(ulong);
            public const int VersionMadeBy = sizeof(ushort);
            public const int VersionNeededToExtract = sizeof(ushort);
            public const int NumberOfThisDisk = sizeof(uint);
            public const int NumberOfDiskWithStartOfCD = sizeof(uint);
            public const int NumberOfEntriesOnThisDisk = sizeof(ulong);
            public const int NumberOfEntriesTotal = sizeof(ulong);
            public const int SizeOfCentralDirectory = sizeof(ulong);
            public const int OffsetOfCentralDirectory = sizeof(ulong);
        }
    }
 
    internal readonly partial struct ZipLocalFileHeader
    {
        internal static class FieldLengths
        {
            public static readonly int Signature = SignatureConstantBytes.Length;
            public const int VersionNeededToExtract = sizeof(ushort);
            public const int GeneralPurposeBitFlags = sizeof(ushort);
            public const int CompressionMethod = sizeof(ushort);
            public const int LastModified = sizeof(ushort) + sizeof(ushort);
            public const int Crc32 = sizeof(uint);
            public const int CompressedSize = sizeof(uint);
            public const int UncompressedSize = sizeof(uint);
            public const int FilenameLength = sizeof(ushort);
            public const int ExtraFieldLength = sizeof(ushort);
        }
 
        internal readonly partial struct ZipDataDescriptor
        {
            internal static class FieldLengths
            {
                public static readonly int Signature = DataDescriptorSignatureConstantBytes.Length;
                public const int Crc32 = sizeof(uint);
                public const int CompressedSize = sizeof(uint);
                public const int UncompressedSize = sizeof(uint);
            }
        }
 
        internal readonly partial struct Zip64DataDescriptor
        {
            internal static class FieldLengths
            {
                public static readonly int Signature = DataDescriptorSignatureConstantBytes.Length;
                public const int Crc32 = sizeof(uint);
                public const int CompressedSize = sizeof(long);
                public const int UncompressedSize = sizeof(long);
            }
        }
    }
 
    internal partial struct ZipCentralDirectoryFileHeader
    {
        internal static class FieldLengths
        {
            public static readonly int Signature = SignatureConstantBytes.Length;
            public const int VersionMadeBySpecification = sizeof(byte);
            public const int VersionMadeByCompatibility = sizeof(byte);
            public const int VersionNeededToExtract = sizeof(ushort);
            public const int GeneralPurposeBitFlags = sizeof(ushort);
            public const int CompressionMethod = sizeof(ushort);
            public const int LastModified = sizeof(ushort) + sizeof(ushort);
            public const int Crc32 = sizeof(uint);
            public const int CompressedSize = sizeof(uint);
            public const int UncompressedSize = sizeof(uint);
            public const int FilenameLength = sizeof(ushort);
            public const int ExtraFieldLength = sizeof(ushort);
            public const int FileCommentLength = sizeof(ushort);
            public const int DiskNumberStart = sizeof(ushort);
            public const int InternalFileAttributes = sizeof(ushort);
            public const int ExternalFileAttributes = sizeof(uint);
            public const int RelativeOffsetOfLocalHeader = sizeof(uint);
        }
    }
 
    internal partial struct ZipEndOfCentralDirectoryBlock
    {
        internal static class FieldLengths
        {
            public static readonly int Signature = SignatureConstantBytes.Length;
            public const int NumberOfThisDisk = sizeof(ushort);
            public const int NumberOfTheDiskWithTheStartOfTheCentralDirectory = sizeof(ushort);
            public const int NumberOfEntriesInTheCentralDirectoryOnThisDisk = sizeof(ushort);
            public const int NumberOfEntriesInTheCentralDirectory = sizeof(ushort);
            public const int SizeOfCentralDirectory = sizeof(uint);
            public const int OffsetOfStartOfCentralDirectoryWithRespectToTheStartingDiskNumber = sizeof(uint);
            public const int ArchiveCommentLength = sizeof(ushort);
        }
    }
}