Créer une archive auto-extractible exécutable en C#

Une archive auto-extractible (SFX ou SEA) est un type spécial de fichier qui contient des données compressées ainsi que des instructions exécutables. Cette archive a la capacité d’extraire elle-même les fichiers qu’elle contient. Par conséquent, vous n’avez besoin d’aucune application d’extraction ou de décompression spécifique pour ouvrir des archives auto-extractibles. Dans cet article, vous apprendrez à créer des archives auto-extractibles exécutables en C# à partir de vos applications .NET.

API C# .NET pour créer des archives auto-extractibles

Pour créer des archives auto-extractibles, nous utiliserons Aspose.ZIP for .NET. Il s’agit d’une API puissante et riche en fonctionnalités qui vous permet d’automatiser assez facilement les fonctionnalités d’archivage dans les applications .NET. De plus, il prend en charge une variété de formats d’archives populaires tels que ZIP, TAR, etc. Vous pouvez télécharger la DLL de l’API ou l’installer à l’aide de NuGet.

PM> Install-Package Aspose.Zip 

Créer une archive auto-extractible en C#

Commençons par créer une archive auto-extractible en supposant que vous avez installé Aspose.ZIP for .NET. Comme il s’agira d’une archive exécutable, son extension sera .exe. Voici les étapes pour créer une archive auto-extractible exécutable en C#.

L’exemple de code suivant montre comment créer une archive auto-extractible exécutable dans .NET.

// Créer FileStream pour enregistrer l'archive SFX
using (FileStream zipFile = File.Open("Archives/archive.exe", FileMode.Create))
{
    // Créer une nouvelle archive
    using (var archive = new Archive())
    {
        // Ajouter des fichiers/dossiers à archiver
        archive.CreateEntry("SourceFile1.txt", "Archives/SourceFile1.txt");

        // Créer et définir des options pour l'archive SFX
        var sfxOptions = new SelfExtractorOptions()
        {
            ExtractorTitle = "Extractor",
            CloseWindowOnExtraction = true, 
        };

        // Créer une archive SFX
        archive.Save(zipFile, new ArchiveSaveOptions() { SelfExtractorOptions = sfxOptions });
    }
}

Exécution d’archives auto-extractibles à l’aide de la ligne de commande

L’archive auto-extractible que nous avons créée dans la section précédente peut être extraite en double-cliquant dessus. Cependant, si vous souhaitez utiliser la ligne de commande, vous pouvez extraire l’archive avec la commande suivante.

C:>archive.exe -autoExtract 

Ici, -autoExtract est l’option principale qui vous permet d’extraire l’archive. Si l’archive est protégée par un mot de passe, vous pouvez spécifier le mot de passe à l’aide de l’option -password, comme indiqué dans la commande suivante.

C:>archive.exe -autoExtract -password:T0p$ecret

La liste complète des commandes pour travailler avec une archive auto-extractible exécutable est fournie dans cet article.

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 à créer des archives auto-extractibles (SFX ou SEA) en C#. De plus, nous avons expliqué comment extraire une archive auto-extractible à l’aide de la ligne de commande. Vous pouvez simplement installer Aspose.ZIP for .NET et intégrer l’exemple de code fourni dans vos applications .NET. En outre, vous pouvez en savoir plus sur Aspose.ZIP for .NET en utilisant sa documentation. Vous pouvez également poster vos questions sur notre forum.

Voir également