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.