Скасувати створення zip Archive

Це може статися, що ви хочете скасувати створення Zip Archive з різних причин. Це просто може зайняти занадто довго, або вам насправді не потрібні деякі записи.

Огляд

Існує клас мішок подій, який є контейнером для подій, пов’язаних з архівами. Тепер він підтримує одну подію - AntineCompressed ( GetEntryCompressed/ setEntryCompressed). Він піднімається після стиснення архіву, і він можна скасувати.

Скасування довгого архіву

Скажімо, ви хочете, щоб ваш архів Zip складався приблизно за хвилину. Після того, як деякий запис був стиснутий, перевіряйте час, який потрібно з початку стиснення, і якщо це зайняло більше хвилини, скасуйте процес. Результат Архів вже стиснув би записи, включаючи той, що тривав подію.

 1спробуйте (архів архів = новий архів ()) {
 2    Archive.createEntries ("D: \\ bigfolder");
 3    ДЖЕПАГА EB = Новий мішок ();
 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}

Скасування після певного входу

Якщо ви хочете скасувати після того, як конкретний запис був стиснутий, використовуйте наступний фрагмент:

 1спробуйте (архів архів = новий архів ()) {
 2    Archive.createEntries ("D: \\ bigfolder");
 3    ДЖЕПАГА EB = Новий мішок ();
 4    eb.setentrycompressed ((відправник, args) -> {
 5        System.out.println (args.getentry (). GetName ());
 6        if (args.getentry (). getName (). Дорівнює ("bigfolder \\ last.bin"))))
 7            args.setcancel (правда);
 8    });
 9    ArchivesaveOptions Options = нові архівизавопції ();
10    опції.seteventsbag (EB);
11    Archive.save ("output.zip", параметри);
12}
Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.