zipアーカイブ作成をキャンセルします

さまざまな理由でzipアーカイブの作成をキャンセルしたい場合があります。時間がかかりすぎるか、実際にそこにいくつかのエントリを必要としません。

概要

アーカイブ関連のイベント用のコンテナである EventsBagクラスがあります。今、それは1つのイベントをサポートしています - Entry Compressed( getEntryCompressed/ setentryCompressed)。アーカイブエントリが圧縮された後に上昇し、キャンセル可能です。

長いアーカイブ作成のキャンセル

ZIPアーカイブを約1分で構成したいとしましょう。 いくつかのエントリが圧縮された後、圧縮の開始から取られた時間をチェックし、1分以上かかった場合はプロセスをキャンセルします。結果のアーカイブは、イベントをトリグ化したものを含む、すでに圧縮されたエントリを持っていました。

 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}

特定のエントリ後にキャンセル

特定のエントリがスニペット後に圧縮された後にキャンセルしたい場合:

 1try(archive archive = new archive()){
 2    archive.createentries( "d:\\ bigfolder");
 3    eventsBag eb = new EventsBag();
 4    eb.setEntryCompressed((senderargs) - > {
 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.