Cancelar la creación del archivo ZIP

Puede suceder que desee cancelar la creación del archivo zip por varios motivos. Puede que lleve demasiado tiempo o que en realidad no necesites algunas entradas allí.

Descripción general

Hay una clase EventsBag que es un contenedor para eventos relacionados con el archivo. Ahora admite un evento: EntryCompressed. Aparece después de que se ha comprimido una entrada del archivo y se puede cancelar.

Cancelar la creación de un archivo largo

Digamos que desea que su archivo ZIP esté compuesto en aproximadamente un minuto. Después de comprimir alguna entrada, verifique el tiempo transcurrido desde el inicio de la compresión y, si tomó más de un minuto, cancele el proceso. El archivo de resultados ya habría comprimido las entradas, incluida la que desencadenó el evento.

Pasos: para cancelar la creación de archivos largos en C#</ fuerte>

  1. Inicialice un nuevo objeto “Archivo” para manejar la compresión.
  2. Inicie un cronómetro para realizar un seguimiento de la duración del proceso de compresión.
  3. Cree entradas de archivo desde un directorio utilizando el método CreateEntries, especificando la carpeta a comprimir.
  4. Configure un EventsBag para manejar eventos de compresión.
  5. Adjunte un controlador de eventos para el evento EntryCompressed, que verifica si el tiempo transcurrido excede un minuto y cancela la operación si es necesario.
  6. Inicie el cronómetro y continúe guardando el archivo, pasando EventsBag en ArchiveSaveOptions.
 1    using (var archive = new Archive())
 2    {
 3        Stopwatch sw = new Stopwatch();
 4                                
 5        archive.CreateEntries(@"D:\BigFolder");
 6        EventsBag eb = new EventsBag();
 7        eb.EntryCompressed += delegate(object sender, CancelEntryEventArgs args)
 8            {
 9            if (sw.Elapsed > TimeSpan.FromSeconds(60))
10                args.Cancel = true;
11            };
12        sw.Start();
13        archive.Save("output.zip", new ArchiveSaveOptions() { EventsBag = eb });
14    }

Cancelando después de cierta entrada

Si desea cancelar después de que se haya comprimido una entrada en particular, utilice el siguiente fragmento:

Pasos: cancelar la creación del archivo después de una entrada específica es comprimido en C#

  1. Inicialice un nuevo objeto “Archivo” para manejar la compresión.
  2. Utilice el método CreateEntries para agregar archivos desde un directorio específico.
  3. Configure un EventsBag para gestionar eventos de compresión.
  4. Adjunte un controlador de eventos para el evento EntryCompressed, que verifica si la entrada que se está comprimiendo coincide con un nombre de archivo específico (por ejemplo, “last.bin”).
  5. Si se encuentra la entrada de destino, active la cancelación.
  6. Guarde el archivo con el EventsBag incluido en ArchiveSaveOptions.
 1    using (var archive = new Archive())
 2    {                          
 3        archive.CreateEntries(@"D:\BigFolder");
 4        EventsBag eb = new EventsBag();
 5        eb.EntryCompressed += delegate(object sender, CancelEntryEventArgs args)
 6            {
 7            if (args.Entry.Name == @"BigFolder\last.bin")
 8                args.Cancel = true;
 9            };      
10        archive.Save("output.zip", new ArchiveSaveOptions() { EventsBag = eb });
11    }
Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.