Supprimer des fichiers dans une archive ZIP en C# .NET

Lorsque vous travaillez avec des archives à partir de vos applications .NET, vous devrez peut-être manipuler des fichiers à l’intérieur d’un ZIP. Dans le post précédent, vous avez vu comment ajouter des fichiers/dossiers dans une archive ZIP. Dans cet article, vous apprendrez à supprimer des fichiers dans les archives ZIP par programmation en C#. Alors commençons.

API C# .NET pour supprimer des fichiers dans les archives ZIP

Aspose.ZIP for .NET est une API puissante qui fournit un large éventail de fonctionnalités d’archivage. Il vous permet de créer et de manipuler des archives de formats populaires tels que ZIP, TAR, 7z et GZip. Nous utiliserons cette API pour supprimer dynamiquement les fichiers à l’intérieur des archives ZIP. Vous pouvez soit installer l’API à partir de NuGet ou télécharger la DLL et la référencer manuellement.

PM> Install-Package Aspose.Zip 

Supprimer les fichiers dans les archives ZIP en C#

Il existe deux façons de supprimer des fichiers dans une archive ZIP en utilisant Aspose.ZIP for .NET. L’un utilise l’index du fichier tandis que l’autre utilise la classe ArchiveEntry. Voyons comment utiliser les deux méthodes susmentionnées.

Supprimer un fichier dans ZIP à l’aide de ArchiveEntry

Aspose.ZIP for .NET représente chaque fichier/dossier à l’intérieur d’un ZIP en tant qu’objet ArchiveEntry et tous les fichiers et dossiers forment une collection d’objets ArchiveEntry. Ainsi, pour supprimer un fichier du ZIP, vous pouvez accéder et supprimer l’objet ArchiveEntry pertinent de la collection. Voici les étapes pour supprimer un fichier d’une archive ZIP en C#.

L’exemple de code suivant montre comment supprimer des fichiers dans une archive ZIP en C#.

// Charger l'archive ZIP
using (var archive = new Archive("Archives/archive.zip"))
{
    // Liste pour conserver les fichiers à supprimer
    List<ArchiveEntry> entriesToDelete = new List<ArchiveEntry>();

    // Boucle dans les entrées ZIP
    foreach(ArchiveEntry entry in archive.Entries)
    {
        // Ajouter un fichier/dossier dans la liste
        if(entry.Name.ToLower().Contains("source"))
        {
            entriesToDelete.Add(entry);
        }
    } 

    // Supprimer toutes les entrées répertoriées
    foreach(var entry in entriesToDelete)
    {
        archive.DeleteEntry(entry);
    }

    // Enregistrer l'archive mise à jour
    archive.Save("Archives/updated-archive.zip");
}

Supprimer un fichier dans ZIP à l’aide de l’index

Vous pouvez également supprimer les entrées ZIP en utilisant leur index. Voici les étapes pour supprimer un fichier/dossier d’une archive ZIP à l’aide de son index.

L’exemple de code C# suivant montre comment supprimer un fichier dans une archive ZIP à l’aide de son index.

// Charger l'archive ZIP
using (var archive = new Archive("Archives/archive.zip"))
{
    // Supprimer le fichier par son index
    archive.DeleteEntry(0);

    // Enregistrer l'archive mise à jour
    archive.Save("Archives/updated-archive.zip");
}

Obtenez une licence API gratuite

Vous pouvez utiliser Aspose.ZIP for .NET sans limitation d’évaluation en obtenant une licence temporaire gratuite.

Conclusion

Dans cet article, vous avez appris à supprimer des fichiers d’archives ZIP en C#. À l’aide d’exemples de code, nous avons vu comment supprimer des fichiers à l’aide de la classe ArchiveEntry ou de l’index. Si vous souhaitez en savoir plus sur Aspose.ZIP for .NET, vous pouvez visiter documentation. Vous pouvez également poser vos questions via notre forum.

Voir également