Скасувати створення 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}