Créer une archive auto-extractible (SFX)
Aspose.ZIP permet de créer une archive auto-extractible (SFX). Il s’agit d’un type spécial de fichier compressé, dont l’extension est .exe. Vous pouvez décompresser un fichier auto-extractible en double-cliquant dessus.
Création d’archive auto-extractible
Pour composer une archive auto-extractible, instanciez SelfExtractorOptions et transmettez-la à ArchiveSaveOptions lors de l’enregistrement.
1 using (FileStream zipFile = File.Open("archive.exe", FileMode.Create))
2 {
3 using (var archive = new Archive())
4 {
5 archive.CreateEntry("entry.bin", "data.bin");
6 var sfxOptions = new SelfExtractorOptions()
7 {
8 ExtractorTitle = "Extractor",
9 CloseWindowOnExtraction = true,
10 TitleIcon = "C:\pictorgam.ico"
11 };
12 archive.Save(zipFile, new ArchiveSaveOptions() { SelfExtractorOptions = sfxOptions });
13 }
14 }
Exécution d’une archive auto-extractible
L’archive que vous produisez est exécutable et nécessite .NET Framework 2.0 ou supérieur pour s’exécuter. Ces frameworks sont fournis avec Windows Vista et versions ultérieures. Vous pouvez l’exécuter comme un programme normal en double-cliquant ou l’exécuter via l’interface de ligne de commande. Si vous souhaitez démarrer l’extraction automatiquement, spécifiez l’option de ligne de commande « -autoExtract ». Échantillon:
1 C:\>archive.exe -autoExtract -password:T0p$ecret
Options de ligne de commande pour les archives auto-extractibles
Option | Meaning | Sample |
---|---|---|
-autoExtract | Primary option - without it decompression does not start. Extraction starts automatically, other options apply. | sfx.exe -autoExtract |
-autoClose | Window closes when the extraction is complete. This option only makes sense if -autoExtract option is present. | sfx.exe -autoExtract -autoClose |
-forceOverwrite | Overwrites all existing files without prompt if there are any. This option only makes sense if -autoExtract option present. | sfx.exe -autoExtract -forceOverwrite |
-password: | Provides a password to encrypted entries. This option only makes sense if -autoExtract option is present. If you have spaces within the password quote it. | sfx.exe -autoExtract -password:T0p$ecret |
-destination: | Extracts files to the supplied directory. This option only makes sense if -autoExtract option is present. If you have spaces within the path quote it. | sfx.exe -autoExtract -destination:"C:\My Documents" |
Vous pouvez utiliser ces options pour composer un script batch sous Windows.