Annuler la cr�ation de l'archive ZIP

Il peut arriver que vous souhaitiez annuler la cr�ation d’une archive zip pour diverses raisons. Cela peut tout simplement prendre trop de temps ou vous n’avez pas r�ellement besoin de certaines entr�es.

Aper�u

Il existe une classe EventsBag qui contient les �v�nements li�s aux archives. D�sormais, il prend en charge un �v�nement�:� EntryCompressed. Il se d�clenche apr�s la compression d’une entr�e d’archive et peut �tre annul�.

Annulation de la cr�ation d’archives longues

Disons que vous souhaitez que votre archive ZIP soit compos�e en une minute environ. Une fois qu’une entr�e a �t� compress�e, v�rifiez le temps �coul� depuis le d�but de la compression et si cela a pris plus d’une minute, annulez le processus. L’archive des r�sultats aurait d�j� compress� les entr�es, y compris celle qui a d�clench� l’�v�nement.

�tapes�: pour annuler la cr�ation d’archives longues en C#</ fort>

  1. Initialisez un nouvel objet Archive pour g�rer la compression.
  2. D�marrez un chronom�tre pour suivre la dur�e du processus de compression.
  3. Cr�ez des entr�es d’archive � partir d’un r�pertoire en utilisant la m�thode CreateEntries, en sp�cifiant le dossier � compresser.
  4. Configurez un EventsBag pour g�rer les �v�nements de compression.
  5. Attachez un gestionnaire d’�v�nements pour l’�v�nement EntryCompressed, qui v�rifie si le temps �coul� d�passe une minute et annule l’op�ration si n�cessaire.
  6. D�marrez le chronom�tre et proc�dez � la sauvegarde de l’archive, en passant le EventsBag dans les 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    }

Annulation apr�s certaines entr�es

Si vous souhaitez annuler apr�s la compression d’une entr�e particuli�re, utilisez l’extrait suivant�:

�tapes�: l’annulation de la cr�ation de l’archive apr�s une entr�e sp�cifique est compress� en C#

  1. Initialisez un nouvel objet Archive pour g�rer la compression.
  2. Utilisez la m�thode CreateEntries pour ajouter des fichiers � partir d’un r�pertoire sp�cifi�.
  3. Configurez un EventsBag pour g�rer les �v�nements de compression.
  4. Attachez un gestionnaire d’�v�nements pour l’�v�nement EntryCompressed, qui v�rifie si l’entr�e en cours de compression correspond � un nom de fichier sp�cifique (par exemple, “last.bin”).
  5. Si l’entr�e cible est trouv�e, d�clenchez l’annulation.
  6. Enregistrez l’archive avec le EventsBag inclus dans 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.