Pruebas en un entorno real
Pruebe en producción sin marcas de agua.
Funciona donde lo necesites.
En el ámbito de las utilidades de compresión y archivado de entradas de archivos, 7-Zip destaca como una solución versátil y de código abierto. Conocido por sus altos índices de compresión y su compatibilidad con varios formatos de archivo, SevenZip se ha convertido en una opción muy popular entre los usuarios que buscan una gestión eficaz de los archivos. En este artículo, exploraremos qué es 7-Zip, cómo funciona, sus principales características, el formato único 7z, los ratios de compresión y su SDK .NET para C# que ayuda a crear archivos 7z. Además, presentaremos IronZIP como solución alternativa en el ecosistema .NET.
SevenZip o 7-Zip es un archivador de archivos gratuito y de código abierto que permite comprimir y descomprimir archivos. Desarrollado por Igor Pavlov, 7-Zip admite una amplia gama de formatos de compresión, lo que lo convierte en una herramienta versátil para gestionar y organizar datos.
7-Zip utiliza algoritmos de compresión avanzados para reducir el tamaño de archivos y carpetas. Emplea el algoritmo LZMA (Algoritmo de cadena de Lempel-Ziv-Markov) para su formato nativo 7z, lo que contribuye a sus impresionantes ratios de compresión. La utilidad también admite otros formatos comunes como ZIP, TAR y GZIP.
El formato 7z es el formato propietario utilizado por 7-Zip para sus archivos. Emplea el algoritmo de compresión LZMA, conocido por sus excelentes ratios de compresión. El formato 7z admite funciones como compresión sólida, división de archivos y archivos autoextraíbles.
7-Zip es famoso por sus extraordinarios ratios de compresión, especialmente cuando se utiliza el formato 7z con el algoritmo LZMA. Esta eficacia permite reducir el tamaño de los archivos comprimidos sin comprometer su integridad. Los archivos creados con 7-Zip se comprimen un 30-70% mejor que con el formato ZIP normal.
Para los desarrolladores que trabajan en C#, 7-Zip proporciona un SDK .NET que permite una integración perfecta de la funcionalidad de 7-Zip en aplicaciones personalizadas. El SDK permite a los desarrolladores realizar operaciones de compresión y descompresión mediante programación, lo que proporciona flexibilidad en la gestión de ficheros archivados dentro de proyectos C#.
Si desea utilizar 7-Zip en una aplicación C#, puede hacer uso del SDK de 7-Zip o utilizar el ejecutable de línea de comandos en su código C#. He aquí un breve resumen de ambos enfoques
El SDK de 7-Zip incluye la biblioteca 7z.dll, que puede utilizar en su proyecto C#. Este enfoque permite realizar operaciones de compresión y descompresión mediante programación.
Aquí está el ejemplo de código fuente utilizando el SDK de 7-Zip:
using SevenZip;
class Program
{
static void Main()
{
// Especifique la ruta a la biblioteca 7z.dll
SevenZipBase.SetLibraryPath("path_to_7z.dll");
// Crear una instancia de SevenZipExtractor o SevenZipCompressor
// Realizar operaciones de compresión o descompresión según sea necesario
// Ejemplo: Extraer ficheros de un archivo
using (var extractor = new SevenZipExtractor("archive.7z"))
{
extractor.ExtractArchive("output_directory");
}
// Ejemplo: Comprimir ficheros en un archivo
using (var compressor = new SevenZipCompressor())
{
// Añadir entrada de archivo
compressor.CompressFiles("archive.7z", "file1.txt", "file2.txt");
}
}
}
using SevenZip;
class Program
{
static void Main()
{
// Especifique la ruta a la biblioteca 7z.dll
SevenZipBase.SetLibraryPath("path_to_7z.dll");
// Crear una instancia de SevenZipExtractor o SevenZipCompressor
// Realizar operaciones de compresión o descompresión según sea necesario
// Ejemplo: Extraer ficheros de un archivo
using (var extractor = new SevenZipExtractor("archive.7z"))
{
extractor.ExtractArchive("output_directory");
}
// Ejemplo: Comprimir ficheros en un archivo
using (var compressor = new SevenZipCompressor())
{
// Añadir entrada de archivo
compressor.CompressFiles("archive.7z", "file1.txt", "file2.txt");
}
}
}
Imports SevenZip
Friend Class Program
Shared Sub Main()
' Especifique la ruta a la biblioteca 7z.dll
SevenZipBase.SetLibraryPath("path_to_7z.dll")
' Crear una instancia de SevenZipExtractor o SevenZipCompressor
' Realizar operaciones de compresión o descompresión según sea necesario
' Ejemplo: Extraer ficheros de un archivo
Using extractor = New SevenZipExtractor("archive.7z")
extractor.ExtractArchive("output_directory")
End Using
' Ejemplo: Comprimir ficheros en un archivo
Using compressor = New SevenZipCompressor()
' Añadir entrada de archivo
compressor.CompressFiles("archive.7z", "file1.txt", "file2.txt")
End Using
End Sub
End Class
Asegúrese de sustituir "ruta_a_7z.dll" por la ruta real a la biblioteca 7z.dll. Encontrará el archivo 7z.dll en el directorio de instalación de 7-Zip.
También puede utilizar el ejecutable de línea de comandos 7-Zip (7z.exe) en su código fuente C# invocándolo a través de la clase System.Diagnostics.Process
.
using System.Diagnostics;
class Program
{
static void Main()
{
// Ejemplo: Extraer ficheros de un archivo utilizando el ejecutable de línea de comandos
string archivePath = "archive.7z";
string outputPath = "output_directory";
ProcessStartInfo processStartInfo = new ProcessStartInfo
{
FileName = "7z.exe",
Arguments = $"x \"{archivePath}\" -o\"{outputPath}\"",
RedirectStandardOutput = true,
UseShellExecute = false,
CreateNoWindow = true
};
using (Process process = new Process { StartInfo = processStartInfo })
{
process.Start();
process.WaitForExit();
}
}
}
using System.Diagnostics;
class Program
{
static void Main()
{
// Ejemplo: Extraer ficheros de un archivo utilizando el ejecutable de línea de comandos
string archivePath = "archive.7z";
string outputPath = "output_directory";
ProcessStartInfo processStartInfo = new ProcessStartInfo
{
FileName = "7z.exe",
Arguments = $"x \"{archivePath}\" -o\"{outputPath}\"",
RedirectStandardOutput = true,
UseShellExecute = false,
CreateNoWindow = true
};
using (Process process = new Process { StartInfo = processStartInfo })
{
process.Start();
process.WaitForExit();
}
}
}
Imports System.Diagnostics
Friend Class Program
Shared Sub Main()
' Ejemplo: Extraer ficheros de un archivo utilizando el ejecutable de línea de comandos
Dim archivePath As String = "archive.7z"
Dim outputPath As String = "output_directory"
Dim processStartInfo As New ProcessStartInfo With {
.FileName = "7z.exe",
.Arguments = $"x ""{archivePath}"" -o""{outputPath}""",
.RedirectStandardOutput = True,
.UseShellExecute = False,
.CreateNoWindow = True
}
Using process As New Process With {.StartInfo = processStartInfo}
process.Start()
process.WaitForExit()
End Using
End Sub
End Class
Asegúrese de que "7z.exe" está en el PATH de su sistema o proporcione la ruta completa al ejecutable en la propiedad FileName
.
Aunque 7-Zip es una solución robusta, los desarrolladores que exploran alternativas dentro del ecosistema .NET pueden encontrar en IronZIP una opción convincente. IronZIP es una biblioteca de compresión .NET que ofrece características similares a 7-Zip, proporcionando a los desarrolladores las herramientas para comprimir, descomprimir y manipular archivos dentro de sus aplicaciones C#.
IronZIP es una potente biblioteca de archivos ZIP en C# que simplifica el trabajo con archivos ZIP en aplicaciones .NET. Gracias a su sencilla API, los desarrolladores pueden crear, leer y extraer Archivos ZIP. He aquí un sencillo fragmento de código que muestra la facilidad de uso de **Crear un archivo ZIP utilizando IronZIP:
using IronZip;
class Program
{
static void Main()
{
// Especifique la ruta para el nuevo archivo ZIP
string zipFilePath = "output.zip";
// Crear un archivo ZIP vacío
using (var archive = new IronArchive(zipFilePath))
{
// Añadir archivos al ZIP
archive.AddArchiveEntry("./assets/file1.txt");
archive.AddArchiveEntry("./assets/file2.jpg");
archive.AddArchiveEntry("./assets/file3.pdf");
}
Console.WriteLine("ZIP archive created successfully!");
}
}
using IronZip;
class Program
{
static void Main()
{
// Especifique la ruta para el nuevo archivo ZIP
string zipFilePath = "output.zip";
// Crear un archivo ZIP vacío
using (var archive = new IronArchive(zipFilePath))
{
// Añadir archivos al ZIP
archive.AddArchiveEntry("./assets/file1.txt");
archive.AddArchiveEntry("./assets/file2.jpg");
archive.AddArchiveEntry("./assets/file3.pdf");
}
Console.WriteLine("ZIP archive created successfully!");
}
}
Imports IronZip
Friend Class Program
Shared Sub Main()
' Especifique la ruta para el nuevo archivo ZIP
Dim zipFilePath As String = "output.zip"
' Crear un archivo ZIP vacío
Using archive = New IronArchive(zipFilePath)
' Añadir archivos al ZIP
archive.AddArchiveEntry("./assets/file1.txt")
archive.AddArchiveEntry("./assets/file2.jpg")
archive.AddArchiveEntry("./assets/file3.pdf")
End Using
Console.WriteLine("ZIP archive created successfully!")
End Sub
End Class
Para obtener más información sobre IronZIP y sus funciones o ejemplos de código, visite la página documentación página.
7-Zip sigue siendo una fuerza dominante en el mundo de la compresión de archivos, ofreciendo a los usuarios una solución de código abierto, rica en funciones y con unos ratios de compresión excepcionales. Su compatibilidad con varios formatos de archivo y sus potentes funciones de cifrado lo convierten en una opción versátil tanto para usuarios ocasionales como para desarrolladores. El SDK .NET amplía aún más su utilidad para los desarrolladores de C#, facilitando una integración perfecta en aplicaciones personalizadas. Para aquellos que buscan una alternativa en el espacio .NET, IronZIP destaca como un competidor digno de mención, ofreciendo una funcionalidad similar adaptada a las necesidades específicas de los desarrolladores C#.
IronZIP ofrece un prueba gratuita página. Descargue y pruebe la biblioteca IronZIP .NET Core y Framework desde aquí.
9 productos API .NET para sus documentos de oficina