Cancelar la creaci�n de un archivo ZIP

Puede ocurrir que desee cancelar la creaci�n de un archivo ZIP por varias razones. Simplemente puede tomar demasiado tiempo o que en realidad no necesita algunas entradas all�.

**Descripci�n general

Existe una clase EventsBag que es contenedor de eventos relacionados con el archivo. Ahora soporta un evento - EntryCompressed ( getEntryCompressed/ setEntryCompressed). Se activa cuando se comprime una entrada del archivo y se puede cancelar.

Cancelaci�n de la creaci�n de un archivo largo

Digamos que quieres que tu archivo ZIP se componga en aproximadamente un minuto. Despu�s de comprimir alguna entrada, comprueba el tiempo transcurrido desde el inicio de la compresi�n y, si ha tardado m�s de un minuto, cancela el proceso. El archivo resultante tendr�a ya entradas comprimidas incluyendo la que provoc� el evento.

 1try (Archive archive = new Archive()) {
 2    archive.createEntries("D:\\\BigFolder");
 3    EventsBag eb = new EventsBag();
 4
 5    Instant starts = Instant.now();
 6
 7    eb.setEntryCompressed((sender, args) -> {
 8        if (starts.plusSeconds(60).isBefore(Instant.now()))
 9            args.setCancel(true);
10    });
11    ArchiveSaveOptions options = new ArchiveSaveOptions();
12    options.setEventsBag(eb);
13    archive.save("output.zip", options);
14}

Cancelaci�n tras cierta entrada

Si desea cancelar despu�s de que se haya comprimido una entrada determinada, utilice el siguiente fragmento:

 1try (Archive archive = new Archive()) {
 2    archive.createEntries("D:\\\BigFolder");
 3    EventsBag eb = new EventsBag();
 4    eb.setEntryCompressed((sender, args) -> {
 5        System.out.println(args.getEntry().getName());
 6        if (args.getEntry().getName().equals("BigFolder\last.bin"))
 7            args.setCancel(true);
 8    });
 9    ArchiveSaveOptions options = new ArchiveSaveOptions();
10    options.setEventsBag(eb);
11    archive.save("salida.zip", opciones);
12}
Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.