java.lang.Object
org.apache.commons.compress.archivers.examples.Expander

public class Expander extends Object
Provides a high level API for expanding archives.
Since:
1.17
  • Constructor Details

    • Expander

      public Expander()
  • Method Details

    • expand

      public void expand(File archive, File targetDirectory) throws IOException, ArchiveException
      Expands archive into targetDirectory.

      Tries to auto-detect the archive's format.

      Parameters:
      archive - the file to expand
      targetDirectory - the directory to write to
      Throws:
      IOException - if an I/O error occurs
      ArchiveException - if the archive cannot be read for other reasons
    • expand

      public void expand(String format, File archive, File targetDirectory) throws IOException, ArchiveException
      Expands archive into targetDirectory.
      Parameters:
      archive - the file to expand
      targetDirectory - the directory to write to
      format - the archive format. This uses the same format as accepted by ArchiveStreamFactory.
      Throws:
      IOException - if an I/O error occurs
      ArchiveException - if the archive cannot be read for other reasons
    • expand

      @Deprecated public void expand(InputStream archive, File targetDirectory) throws IOException, ArchiveException
      Deprecated.
      this method leaks resources
      Expands archive into targetDirectory.

      Tries to auto-detect the archive's format.

      This method creates a wrapper around the archive stream which is never closed and thus leaks resources, please use expand(InputStream,File,CloseableConsumer) instead.

      Parameters:
      archive - the file to expand
      targetDirectory - the directory to write to
      Throws:
      IOException - if an I/O error occurs
      ArchiveException - if the archive cannot be read for other reasons
    • expand

      public void expand(InputStream archive, File targetDirectory, CloseableConsumer closeableConsumer) throws IOException, ArchiveException
      Expands archive into targetDirectory.

      Tries to auto-detect the archive's format.

      This method creates a wrapper around the archive stream and the caller of this method is responsible for closing it - probably at the same time as closing the stream itself. The caller is informed about the wrapper object via the closeableConsumer callback as soon as it is no longer needed by this class.

      Parameters:
      archive - the file to expand
      targetDirectory - the directory to write to
      closeableConsumer - is informed about the stream wrapped around the passed in stream
      Throws:
      IOException - if an I/O error occurs
      ArchiveException - if the archive cannot be read for other reasons
      Since:
      1.19
    • expand

      @Deprecated public void expand(String format, InputStream archive, File targetDirectory) throws IOException, ArchiveException
      Deprecated.
      this method leaks resources
      Expands archive into targetDirectory.

      This method creates a wrapper around the archive stream which is never closed and thus leaks resources, please use expand(String,InputStream,File,CloseableConsumer) instead.

      Parameters:
      archive - the file to expand
      targetDirectory - the directory to write to
      format - the archive format. This uses the same format as accepted by ArchiveStreamFactory.
      Throws:
      IOException - if an I/O error occurs
      ArchiveException - if the archive cannot be read for other reasons
    • expand

      public void expand(String format, InputStream archive, File targetDirectory, CloseableConsumer closeableConsumer) throws IOException, ArchiveException
      Expands archive into targetDirectory.

      This method creates a wrapper around the archive stream and the caller of this method is responsible for closing it - probably at the same time as closing the stream itself. The caller is informed about the wrapper object via the closeableConsumer callback as soon as it is no longer needed by this class.

      Parameters:
      archive - the file to expand
      targetDirectory - the directory to write to
      format - the archive format. This uses the same format as accepted by ArchiveStreamFactory.
      closeableConsumer - is informed about the stream wrapped around the passed in stream
      Throws:
      IOException - if an I/O error occurs
      ArchiveException - if the archive cannot be read for other reasons
      Since:
      1.19
    • expand

      @Deprecated public void expand(String format, SeekableByteChannel archive, File targetDirectory) throws IOException, ArchiveException
      Deprecated.
      this method leaks resources
      Expands archive into targetDirectory.

      This method creates a wrapper around the archive channel which is never closed and thus leaks resources, please use expand(String,SeekableByteChannel,File,CloseableConsumer) instead.

      Parameters:
      archive - the file to expand
      targetDirectory - the directory to write to
      format - the archive format. This uses the same format as accepted by ArchiveStreamFactory.
      Throws:
      IOException - if an I/O error occurs
      ArchiveException - if the archive cannot be read for other reasons
    • expand

      public void expand(String format, SeekableByteChannel archive, File targetDirectory, CloseableConsumer closeableConsumer) throws IOException, ArchiveException
      Expands archive into targetDirectory.

      This method creates a wrapper around the archive channel and the caller of this method is responsible for closing it - probably at the same time as closing the channel itself. The caller is informed about the wrapper object via the closeableConsumer callback as soon as it is no longer needed by this class.

      Parameters:
      archive - the file to expand
      targetDirectory - the directory to write to
      format - the archive format. This uses the same format as accepted by ArchiveStreamFactory.
      closeableConsumer - is informed about the stream wrapped around the passed in channel
      Throws:
      IOException - if an I/O error occurs
      ArchiveException - if the archive cannot be read for other reasons
      Since:
      1.19
    • expand

      public void expand(ArchiveInputStream archive, File targetDirectory) throws IOException, ArchiveException
      Expands archive into targetDirectory.
      Parameters:
      archive - the file to expand
      targetDirectory - the directory to write to
      Throws:
      IOException - if an I/O error occurs
      ArchiveException - if the archive cannot be read for other reasons
    • expand

      public void expand(TarFile archive, File targetDirectory) throws IOException, ArchiveException
      Expands archive into targetDirectory.
      Parameters:
      archive - the file to expand
      targetDirectory - the directory to write to
      Throws:
      IOException - if an I/O error occurs
      ArchiveException - if the archive cannot be read for other reasons
      Since:
      1.21
    • expand

      public void expand(ZipFile archive, File targetDirectory) throws IOException, ArchiveException
      Expands archive into targetDirectory.
      Parameters:
      archive - the file to expand
      targetDirectory - the directory to write to
      Throws:
      IOException - if an I/O error occurs
      ArchiveException - if the archive cannot be read for other reasons
    • expand

      public void expand(SevenZFile archive, File targetDirectory) throws IOException, ArchiveException
      Expands archive into targetDirectory.
      Parameters:
      archive - the file to expand
      targetDirectory - the directory to write to
      Throws:
      IOException - if an I/O error occurs
      ArchiveException - if the archive cannot be read for other reasons
    • prefersSeekableByteChannel

      private boolean prefersSeekableByteChannel(String format)
    • expand

      private void expand(Expander.ArchiveEntrySupplier supplier, Expander.EntryWriter writer, File targetDirectory) throws IOException
      Throws:
      IOException