Erstellung eines ZIP-Archivs abbrechen

Es kann vorkommen, dass Sie die Erstellung von ZIP-Archiven aus verschiedenen Gr�nden abbrechen m�chten. Es kann einfach zu lange dauern oder Sie brauchen einige Eintr�ge dort gar nicht.

�bersicht

Es gibt eine EventsBag Klasse, die Container f�r archivbezogene Ereignisse sind. Jetzt unterst�tzt sie ein Ereignis - EntryCompressed ( getEntryCompressed/ setEntryCompressed). Es wird ausgel�st, nachdem ein Archiveintrag komprimiert wurde, und es kann abgebrochen werden.

Abbruch der Erstellung eines langen Archivs

Angenommen, Sie m�chten, dass Ihr ZIP-Archiv in etwa einer Minute erstellt wird. Nachdem ein Eintrag komprimiert wurde, �berpr�fen Sie die Zeit, die seit Beginn der Komprimierung verstrichen ist, und brechen Sie den Vorgang ab, wenn er l�nger als eine Minute gedauert hat. Das Ergebnisarchiv w�rde bereits komprimierte Eintr�ge enthalten, einschlie�lich des Eintrags, der das Ereignis ausgel�st hat.

 1try (Archiv 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}

Abbruch nach bestimmter Eingabe

Wenn Sie den Vorgang abbrechen m�chten, nachdem ein bestimmter Eintrag komprimiert wurde, verwenden Sie das folgende Snippet:

 1try (Archiv archive = new Archive()) {
 2    archive.createEntries("D:\\BigFolder");
 3    EventsBag eb = new EventsBag();
 4    eb.setEntryCompressed((Absender, 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("output.zip", options);
12}
Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.