Class RarArchiveLoadOptions


  • public class RarArchiveLoadOptions
    extends Object

    Options with which RarArchive is loaded from a compressed file.

    • Constructor Detail

      • RarArchiveLoadOptions

        public RarArchiveLoadOptions()
    • Method Detail

      • getDecryptionPassword

        public final String getDecryptionPassword()

        Gets the password to decrypt entries and entry names.

        You can provide decryption password once on archive extraction.

        
            try (FileInputStream fs = new FileInputStream("encrypted_archive.rar")) {
                try (FileOutputStream extracted = new FileOutputStream("extracted.bin")) {
                    RarArchiveLoadOptions options = new RarArchiveLoadOptions();
                    options.setDecryptionPassword("p@s$");
                    try (RarArchive archive = new RarArchive(fs, options)) {
                        try (InputStream decompressed = archive.getEntries().get(0).open()) {
                            byte[] b = new byte[8192];
                            int bytesRead;
                            while (0 < (bytesRead = decompressed.read(b, 0, b.length)))
                                extracted.write(b, 0, bytesRead);
                        }
                    }
                }
            } catch (IOException ex) {
            }
         
        Returns:
        the password to decrypt entries and entry names.
        See Also:
        RarArchiveEntry.open(String)
      • setDecryptionPassword

        public final void setDecryptionPassword​(String value)

        Sets the password to decrypt entries and entry names.

        You can provide decryption password once on archive extraction.

        
            try (FileInputStream fs = new FileInputStream("encrypted_archive.rar")) {
                try (FileOutputStream extracted = new FileOutputStream("extracted.bin")) {
                    RarArchiveLoadOptions options = new RarArchiveLoadOptions();
                    options.setDecryptionPassword("p@s$");
                    try (RarArchive archive = new RarArchive(fs, options)) {
                        try (InputStream decompressed = archive.getEntries().get(0).open()) {
                            byte[] b = new byte[8192];
                            int bytesRead;
                            while (0 < (bytesRead = decompressed.read(b, 0, b.length)))
                                extracted.write(b, 0, bytesRead);
                        }
                    }
                }
            } catch (IOException ex) {
            }
         
        Parameters:
        value - the password to decrypt entries and entry names.
        See Also:
        RarArchiveEntry.open(String)
      • setCancellationFlag

        public void setCancellationFlag​(CancellationFlag value)

        Sets a cancellation flag used to cancel the extraction operation.

        Cancel RAR archive extraction after a certain time.

        
             try (CancellationFlag cf = new CancellationFlag()) {
                 cf.cancelAfter(TimeUnit.SECONDS.toMillis(60));
                 RarArchiveLoadOptions options = new RarArchiveLoadOptions();
                 options.setCancellationFlag(cf);
                 try (RarArchive a = new RarArchive("big.rar", options)) {
                     try {
                         a.getEntries().get(0).extract("data.bin");
                     } catch (OperationCanceledException e) {
                         System.out.println("Extraction was cancelled after 60 seconds");
                     }
                 }
             }
         
        Cancellation mostly results in some data not being extracted.

        Parameters:
        value - a cancellation flag used to cancel the extraction operation.