Class ZipFileReader

java.lang.Object
com.itextpdf.commons.utils.ZipFileReader
All Implemented Interfaces:
Closeable, AutoCloseable

public class ZipFileReader extends Object implements Closeable
Allows reading entries from a zip file.
  • Constructor Details

    • ZipFileReader

      public ZipFileReader (String archivePath) throws IOException
      Creates an instance for zip file reading.
      Parameters:
      archivePath - the path to the zip file to read
      Throws:
      IOException - if some I/O exception occurs
  • Method Details

    • getFileNames

      public Set<String> getFileNames() throws IOException
      Get all file entries paths inside the reading zip file.
      Returns:
      the Set of all file entries paths
      Throws:
      IOException - if some I/O exception occurs
    • readFromZip

      public InputStream readFromZip (String fileName) throws IOException
      Read single file from zip.
      Parameters:
      fileName - the file path inside zip to read
      Returns:
      the InputStream represents read file content
      Throws:
      IOException - if some I/O exception occurs
    • setThresholdSize

      public void setThresholdSize (int thresholdSize)
      Sets the maximum total uncompressed data size to prevent a Zip Bomb Attack. Default value is 1 GB (1000000000).
      Parameters:
      thresholdSize - the threshold for maximum total size of the uncompressed data
    • setThresholdEntries

      public void setThresholdEntries (int thresholdEntries)
      Sets the maximum number of file entries in the archive to prevent a Zip Bomb Attack. Default value is 10000.
      Parameters:
      thresholdEntries - maximum number of file entries in the archive
    • setThresholdRatio

      public void setThresholdRatio (double thresholdRatio)
      Sets the maximum ratio between compressed and uncompressed data to prevent a Zip Bomb Attack. In general the data compression ratio for most of the legit archives is 1 to 3. Default value is 10.
      Parameters:
      thresholdRatio - maximum ratio between compressed and uncompressed data
    • close

      public void close() throws IOException
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Throws:
      IOException