Class Zip64ExtendedInformationExtraField

java.lang.Object
org.apache.commons.compress.archivers.zip.Zip64ExtendedInformationExtraField
All Implemented Interfaces:
ZipExtraField

Holds size and other extended information for entries that use Zip64 features.

Currently Commons Compress doesn't support encrypting the central directory so the note in APPNOTE.TXT about masking doesn't apply.

The implementation relies on data being read from the local file header and assumes that both size values are always present.

Since:
1.2
See Also:
This class is not thread-safe
  • Constructor Details Link icon

  • Method Details Link icon

    • getCentralDirectoryData Link icon

      public byte[] getCentralDirectoryData()
      Description copied from interface: ZipExtraField
      The actual data to put into central directory - without Header-ID or length specifier.
      Specified by:
      getCentralDirectoryData in interface ZipExtraField
      Returns:
      the data
    • getCentralDirectoryLength Link icon

      Description copied from interface: ZipExtraField
      Length of the extra field in the central directory - without Header-ID or length specifier.
      Specified by:
      getCentralDirectoryLength in interface ZipExtraField
      Returns:
      the length of the field in the central directory
    • getCompressedSize Link icon

      The compressed size stored in this extra field.
      Returns:
      The compressed size stored in this extra field.
    • getDiskStartNumber Link icon

      The disk start number stored in this extra field.
      Returns:
      The disk start number stored in this extra field.
    • getHeaderId Link icon

      Description copied from interface: ZipExtraField
      The Header-ID.
      Specified by:
      getHeaderId in interface ZipExtraField
      Returns:
      The HeaderId value
    • getLocalFileDataData Link icon

      public byte[] getLocalFileDataData()
      Description copied from interface: ZipExtraField
      The actual data to put into local file data - without Header-ID or length specifier.
      Specified by:
      getLocalFileDataData in interface ZipExtraField
      Returns:
      the data
    • getLocalFileDataLength Link icon

      Description copied from interface: ZipExtraField
      Length of the extra field in the local file data - without Header-ID or length specifier.
      Specified by:
      getLocalFileDataLength in interface ZipExtraField
      Returns:
      the length of the field in the local file data
    • getRelativeHeaderOffset Link icon

      The relative header offset stored in this extra field.
      Returns:
      The relative header offset stored in this extra field.
    • getSize Link icon

      The uncompressed size stored in this extra field.
      Returns:
      The uncompressed size stored in this extra field.
    • parseFromCentralDirectoryData Link icon

      public void parseFromCentralDirectoryData(byte[] buffer, int offset, int length) throws ZipException
      Description copied from interface: ZipExtraField
      Populate data from this array as if it was in central directory data.
      Specified by:
      parseFromCentralDirectoryData in interface ZipExtraField
      Parameters:
      buffer - the buffer to read data from
      offset - offset into buffer to read data
      length - the length of data
      Throws:
      ZipException - on error
    • parseFromLocalFileData Link icon

      public void parseFromLocalFileData(byte[] buffer, int offset, int length) throws ZipException
      Description copied from interface: ZipExtraField
      Populate data from this array as if it was in local file data.
      Specified by:
      parseFromLocalFileData in interface ZipExtraField
      Parameters:
      buffer - the buffer to read data from
      offset - offset into buffer to read data
      length - the length of data
      Throws:
      ZipException - on error
    • reparseCentralDirectoryData Link icon

      public void reparseCentralDirectoryData(boolean hasUncompressedSize, boolean hasCompressedSize, boolean hasRelativeHeaderOffset, boolean hasDiskStart) throws ZipException
      Parses the raw bytes read from the central directory extra field with knowledge which fields are expected to be there.

      All four fields inside the zip64 extended information extra field are optional and must only be present if their corresponding entry inside the central directory contains the correct magic value.

      Parameters:
      hasUncompressedSize - flag to read from central directory
      hasCompressedSize - flag to read from central directory
      hasRelativeHeaderOffset - flag to read from central directory
      hasDiskStart - flag to read from central directory
      Throws:
      ZipException - on error
    • setCompressedSize Link icon

      public void setCompressedSize(ZipEightByteInteger compressedSize)
      The uncompressed size stored in this extra field.
      Parameters:
      compressedSize - The uncompressed size stored in this extra field.
    • setDiskStartNumber Link icon

      public void setDiskStartNumber(ZipLong ds)
      The disk start number stored in this extra field.
      Parameters:
      ds - The disk start number stored in this extra field.
    • setRelativeHeaderOffset Link icon

      The relative header offset stored in this extra field.
      Parameters:
      rho - The relative header offset stored in this extra field.
    • setSize Link icon

      public void setSize(ZipEightByteInteger size)
      The uncompressed size stored in this extra field.
      Parameters:
      size - The uncompressed size stored in this extra field.