# ZipExtraField (Apache Commons Compress 1.13 API)

org.apache.commons.compress.archivers.zip

## Interface ZipExtraField

- All Known Implementing Classes:
    AbstractUnicodeExtraField, AsiExtraField, JarMarker, PKWareExtraHeader, UnicodeCommentExtraField, UnicodePathExtraField, UnparseableExtraFieldData, UnrecognizedExtraField, X000A_NTFS, X0014_X509Certificates, X0015_CertificateIdForFile, X0016_CertificateIdForCentralDirectory, X0017_StrongEncryptionHeader, X0019_EncryptionRecipientCertificateList, X5455_ExtendedTimestamp, X7875_NewUnix, Zip64ExtendedInformationExtraField

      public interface ZipExtraField

  General format of extra field data.

  Extra fields usually appear twice per file, once in the local file data and once in the central directory. Usually they are the same, but they don't have to be. `java.util.zip.ZipOutputStream` will only use the local file data in both places.

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `byte[]` | `getCentralDirectoryData()` The actual data to put into central directory - without Header-ID or length specifier.
    `ZipShort` | `getCentralDirectoryLength()` Length of the extra field in the central directory - without Header-ID or length specifier.
    `ZipShort` | `getHeaderId()` The Header-ID.
    `byte[]` | `getLocalFileDataData()` The actual data to put into local file data - without Header-ID or length specifier.
    `ZipShort` | `getLocalFileDataLength()` Length of the extra field in the local file data - without Header-ID or length specifier.
    `void` | `parseFromCentralDirectoryData(byte[] buffer, int offset, int length)` Populate data from this array as if it was in central directory data.
    `void` | `parseFromLocalFileData(byte[] buffer, int offset, int length)` Populate data from this array as if it was in local file data.

- - ### Method Detail

    - #### getHeaderId

          ZipShort getHeaderId()

      The Header-ID.
      Returns:
        The HeaderId value

    - #### getLocalFileDataLength

          ZipShort getLocalFileDataLength()

      Length of the extra field in the local file data - without Header-ID or length specifier.
      Returns:
        the length of the field in the local file data

    - #### getCentralDirectoryLength

          ZipShort getCentralDirectoryLength()

      Length of the extra field in the central directory - without Header-ID or length specifier.
      Returns:
        the length of the field in the central directory

    - #### getLocalFileDataData

          byte[] getLocalFileDataData()

      The actual data to put into local file data - without Header-ID or length specifier.
      Returns:
        the data

    - #### getCentralDirectoryData

          byte[] getCentralDirectoryData()

      The actual data to put into central directory - without Header-ID or length specifier.
      Returns:
        the data

    - #### parseFromLocalFileData

          void parseFromLocalFileData(byte[] buffer,
                                    int offset,
                                    int length)
                                      throws ZipException

      Populate data from this array as if it was in local file data.
      Parameters:
        `buffer` - the buffer to read data from
        `offset` - offset into buffer to read data
        `length` - the length of data
      Throws:
        `ZipException` - on error

    - #### parseFromCentralDirectoryData

          void parseFromCentralDirectoryData(byte[] buffer,
                                           int offset,
                                           int length)
                                             throws ZipException

      Populate data from this array as if it was in central directory data.
      Parameters:
        `buffer` - the buffer to read data from
        `offset` - offset into buffer to read data
        `length` - the length of data
      Throws:
        `ZipException` - on error

Copyright © 2016 The Apache Software Foundation. All rights reserved.