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()
{
// Specify the path to the 7z.dll library
SevenZipBase.SetLibraryPath("path_to_7z.dll");
// Create a SevenZipExtractor or SevenZipCompressor instance
// Perform compression or decompression operations as needed
// Example: Extract files from an archive
using (var extractor = new SevenZipExtractor("archive.7z"))
{
extractor.ExtractArchive("output_directory");
}
// Example: Compress files into an archive
using (var compressor = new SevenZipCompressor())
{
// Add File entry in archive
compressor.CompressFiles("archive.7z", "file1.txt", "file2.txt");
}
}
}
using SevenZip;
class Program
{
static void Main()
{
// Specify the path to the 7z.dll library
SevenZipBase.SetLibraryPath("path_to_7z.dll");
// Create a SevenZipExtractor or SevenZipCompressor instance
// Perform compression or decompression operations as needed
// Example: Extract files from an archive
using (var extractor = new SevenZipExtractor("archive.7z"))
{
extractor.ExtractArchive("output_directory");
}
// Example: Compress files into an archive
using (var compressor = new SevenZipCompressor())
{
// Add File entry in archive
compressor.CompressFiles("archive.7z", "file1.txt", "file2.txt");
}
}
}
Imports SevenZip
Friend Class Program
Shared Sub Main()
' Specify the path to the 7z.dll library
SevenZipBase.SetLibraryPath("path_to_7z.dll")
' Create a SevenZipExtractor or SevenZipCompressor instance
' Perform compression or decompression operations as needed
' Example: Extract files from an archive
Using extractor = New SevenZipExtractor("archive.7z")
extractor.ExtractArchive("output_directory")
End Using
' Example: Compress files into an archive
Using compressor = New SevenZipCompressor()
' Add File entry in archive
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()
{
// Example: Extract files from an archive using the command-line executable
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()
{
// Example: Extract files from an archive using the command-line executable
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()
' Example: Extract files from an archive using the command-line executable
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 puedenCrear, leer y extraer archivos ZIP con IronZIP. He aquí un sencillo fragmento de código que muestra la facilidad de uso deCreación de un archivo ZIP con IronZIP:
using IronZip;
class Program
{
static void Main()
{
// Specify the path for the new ZIP archive
string zipFilePath = "output.zip";
// Create an empty ZIP archive
using (var archive = new IronArchive(zipFilePath))
{
// Add files to the 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()
{
// Specify the path for the new ZIP archive
string zipFilePath = "output.zip";
// Create an empty ZIP archive
using (var archive = new IronArchive(zipFilePath))
{
// Add files to the 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()
' Specify the path for the new ZIP archive
Dim zipFilePath As String = "output.zip"
' Create an empty ZIP archive
Using archive = New IronArchive(zipFilePath)
' Add files to the 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áginaDocumentación de IronZIP 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 unprueba gratuita de IronZIP . Descargue y pruebe la biblioteca IronZIP .NET Core y Framework de la página webPágina de descargas de IronZIP.
9 productos API .NET para sus documentos de oficina