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 .NET pour créer des archives auto-extractibles
- Créer une archive auto-extractible en C#
- Exécution d’archives auto-extractibles à partir de la ligne de commande
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#.
- Tout d’abord, créez un nouvel objet FileStream pour l’archivage.
- Créez ensuite un objet de la classe Archive.
- Ajoutez des fichiers à l’archive à l’aide de la méthode Archive.CreateEntry(string, string).
- Créez un objet de la classe SelfExtractorOptions pour spécifier les options de l’archive auto-extractible.
- Définissez des options telles que le titre, l’icône, etc.
- Enfin, enregistrez le fichier d’archive auto-extractible à l’aide de la méthode Archive.Save(FileStream, new ArchiveSaveOptions()).
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.