Un archivo autoextraíble (SFX o SEA) es un tipo especial de archivo que contiene datos comprimidos junto con instrucciones ejecutables. Este archivo tiene la capacidad de extraer los archivos que contiene por sí mismo. Por lo tanto, no necesita ninguna aplicación extractora o descompresora específica para abrir archivos autoextraíbles. En este artículo, aprenderá a crear archivos autoextraíbles ejecutables en C# desde sus aplicaciones .NET.
- .NET API para crear archivos autoextraíbles
- Crear un archivo autoextraíble en C#
- Ejecución de archivos autoextraíbles desde la línea de comandos
C# .NET API para crear archivos autoextraíbles
Para crear archivos autoextraíbles, usaremos Aspose.ZIP for .NET. Es una API potente y rica en funciones que le permite automatizar las funciones de archivo en las aplicaciones .NET con bastante facilidad. Además, admite una variedad de formatos de archivo populares como ZIP, TAR, etc. Puede descargar la DLL de la API o instalarla usando NuGet.
PM> Install-Package Aspose.Zip
Crear un archivo autoextraíble en C#
Comencemos a crear un archivo autoextraíble suponiendo que instaló Aspose.ZIP for .NET. Dado que será un archivo ejecutable, su extensión será .exe. Los siguientes son los pasos para crear un archivo autoextraíble ejecutable en C#.
- Primero, cree un nuevo objeto FileStream para el archivo.
- Luego, cree un objeto de la clase Archive.
- Agregue archivos al archivo utilizando el método Archive.CreateEntry(string, string).
- Cree un objeto de la clase SelfExtractorOptions para especificar las opciones para el archivo autoextraíble.
- Establecer opciones como título, icono, etc.
- Finalmente, guarde el archivo de almacenamiento autoextraíble usando el método Archive.Save(FileStream, new ArchiveSaveOptions()).
El siguiente ejemplo de código muestra cómo crear un archivo autoextraíble ejecutable en .NET.
// Crear FileStream para guardar el archivo SFX
using (FileStream zipFile = File.Open("Archives/archive.exe", FileMode.Create))
{
// Crear un nuevo archivo
using (var archive = new Archive())
{
// Agregar archivos/carpetas para archivar
archive.CreateEntry("SourceFile1.txt", "Archives/SourceFile1.txt");
// Crear y configurar opciones para el archivo SFX
var sfxOptions = new SelfExtractorOptions()
{
ExtractorTitle = "Extractor",
CloseWindowOnExtraction = true,
};
// Crear archivo SFX
archive.Save(zipFile, new ArchiveSaveOptions() { SelfExtractorOptions = sfxOptions });
}
}
Ejecución de archivos autoextraíbles mediante la línea de comandos
El archivo autoextraíble que hemos creado en la sección anterior se puede extraer haciendo doble clic en él. Sin embargo, si desea utilizar la línea de comandos, puede extraer el archivo con el siguiente comando.
C:>archive.exe -autoExtract
Aquí, -autoExtract es la opción principal que le permite extraer el archivo. En caso de que el archivo esté protegido con contraseña, puede especificar la contraseña usando la opción -password, como se muestra en el siguiente comando.
C:>archive.exe -autoExtract -password:T0p$ecret
La lista completa de los comandos para trabajar con un archivo autoextraíble ejecutable se proporciona en este artículo.
Obtenga una licencia de API gratuita
Puede usar Aspose.ZIP for .NET sin limitaciones de evaluación al obtener una licencia temporal gratuita.
Conclusión
En este artículo, ha aprendido a crear archivos autoextraíbles (SFX o SEA) en C#. Además, hemos discutido cómo extraer un archivo autoextraíble usando la línea de comando. Simplemente puede instalar Aspose.ZIP for .NET e incrustar el ejemplo de código proporcionado en sus aplicaciones .NET. Además, puede explorar más sobre Aspose.ZIP for .NET usando su documentación. Además, puede publicar sus consultas en nuestro foro.