AIDE .NET

SevenZip C# (Comment ça marche pour les développeurs)

Publié décembre 24, 2023
Partager:

Introduction

Dans le domaine des utilitaires de compression et d'archivage des entrées de fichiers, 7-Zip s'impose comme une solution polyvalente et open-source. Réputé pour ses taux de compression élevés et sa prise en charge de divers formats d'archives, SevenZip est devenu un choix populaire pour les utilisateurs à la recherche d'une gestion efficace des fichiers. Dans cet article, nous verrons ce qu'est 7-Zip, comment il fonctionne, ses principales caractéristiques, le format unique 7z, les taux de compression et son SDK .NET pour C# qui permet de créer des archives 7z. En outre, nous présenterons IronZIP comme une solution alternative dans l'écosystème .NET.

Qu'est-ce que SevenZip ?

SevenZip ou 7-Zip est un utilitaire d'archivage de fichiers libre et gratuit qui permet aux utilisateurs de compresser et de décompresser des fichiers. Développé par Igor Pavlov, 7-Zip prend en charge un large éventail de formats de compression, ce qui en fait un outil polyvalent pour la gestion et l'organisation des données.

Sevenzip C#(Comment ça marche pour les développeurs) Figure 1 - 7-Zip

Caractéristiques principales

  • Taux de compression élevé: L'une des principales caractéristiques de 7-Zip est sa capacité à atteindre des taux de compression élevés, souvent supérieurs à ceux d'autres outils d'archivage. Cela peut se traduire par des économies significatives en termes d'espace de stockage et par des transferts de fichiers plus rapides vers un dossier.
  • Prise en charge d'un grand nombre de formats: 7-Zip peut prendre en charge un grand nombre de formats d'archives, y compris 7z, ZIP, TAR, GZIP et bien d'autres. Cette polyvalence garantit la compatibilité avec différents systèmes d'exploitation et logiciels.
  • Cryptage et sécurité: 7-Zip offre de puissantes capacités de cryptage, permettant aux utilisateurs de sécuriser leurs archives avec le cryptage AES-256. Les données sensibles restent ainsi protégées.
  • **En plus de son interface graphique conviviale, 7-Zip propose une version en ligne de commande pour les utilisateurs qui préfèrent l'automatisation et les scripts dans leurs tâches de gestion de fichiers.

Comment ça marche

7-Zip utilise des algorithmes de compression avancés pour réduire la taille des fichiers et des dossiers. Il utilise la méthode LZMA(Lempel-Ziv-Markov chain-Algorithm (algorithme de chaîne de Markov)) pour son format natif 7z, ce qui contribue à ses taux de compression impressionnants. L'utilitaire prend également en charge d'autres formats courants tels que ZIP, TAR et GZIP.

format 7z

Le format 7z est le format propriétaire utilisé par 7-Zip pour ses archives. Il utilise l'algorithme de compression LZMA, connu pour ses excellents taux de compression. Le format 7z prend en charge des fonctions telles que la compression solide, le fractionnement des fichiers et les archives auto-extractibles.

Taux de compression

7-Zip est réputé pour ses taux de compression exceptionnels, en particulier lorsqu'il utilise le format 7z avec l'algorithme LZMA. Cette efficacité permet de réduire la taille des archives sans compromettre l'intégrité des fichiers compressés. Les fichiers créés par 7-Zip sont compressés 30 à 70 % plus efficacement que le format ZIP normal.

7-Zip LZMA SDK pour C# ;

Pour les développeurs travaillant en C#, 7-Zip fournit un SDK .NET qui permet une intégration transparente des fonctionnalités de 7-Zip dans les applications personnalisées. Le SDK permet aux développeurs d'effectuer des opérations de compression et de décompression par programmation, ce qui offre une grande souplesse dans la gestion des fichiers archivés au sein des projets C#.

Si vous souhaitez utiliser 7-Zip dans une application C#, vous pouvez utiliser le SDK 7-Zip ou utiliser l'exécutable en ligne de commande dans votre code C#. Voici un bref aperçu des deux approches

1. 7-Zip SDK(7z.dll)

Le SDK 7-Zip comprend la bibliothèque 7z.dll, que vous pouvez utiliser dans votre projet C#. Cette approche vous permet d'effectuer des opérations de compression et de décompression par programme.

Voici un exemple de code source utilisant le SDK 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
VB   C#

Veillez à remplacer "path_to_7z.dll" par le chemin réel de la bibliothèque 7z.dll. Vous trouverez le fichier 7z.dll dans le répertoire d'installation de 7-Zip.

2. Exécutable en ligne de commande

Vous pouvez également utiliser l'exécutable de ligne de commande 7-Zip(7z.exe) dans votre code source C# en l'invoquant via la classe 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
VB   C#

Assurez-vous que "7z.exe" se trouve dans le PATH de votre système ou indiquez le chemin complet de l'exécutable dans la propriété FileName.

Présentation d'IronZIP

Bien que 7-Zip soit une solution robuste, les développeurs à la recherche d'alternatives au sein de l'écosystème .NET pourraient trouver en IronZIP un choix convaincant.IronZIP est une bibliothèque de compression .NET qui offre des fonctionnalités similaires à 7-Zip, fournissant aux développeurs les outils nécessaires pour compresser, décompresser et manipuler des archives dans leurs applications C#.

Sevenzip C#(Comment ça marche pour les développeurs) Figure 2 - IronZIP

IronZIP est une puissante bibliothèque d'archives ZIP C# qui simplifie l'utilisation des fichiers ZIP dans les applications .NET. Grâce à son API conviviale, les développeurs peuvent efficacementcréer, lire et extraire des archives ZIP avec IronZIP. Voici un extrait de code simple qui illustre la facilité d'utilisation de la fonctioncréation d'une archive ZIP à l'aide d'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
VB   C#

Pour plus d'informations sur IronZIP et ses capacités ou pour des exemples de code, veuillez consulter le site webDocumentation IronZIP page.

Conclusion

7-Zip continue d'être une force dominante dans le monde de la compression de fichiers, offrant aux utilisateurs une solution open-source riche en fonctionnalités avec des taux de compression exceptionnels. Sa prise en charge de divers formats d'archives et ses capacités de chiffrement élevées en font un choix polyvalent pour les utilisateurs occasionnels comme pour les développeurs. Le SDK .NET étend encore son utilité pour les développeurs C#, facilitant l'intégration transparente dans les applications personnalisées. Pour ceux qui recherchent une alternative dans l'espace .NET, IronZIP se distingue comme un concurrent digne d'intérêt, offrant des fonctionnalités similaires adaptées aux besoins spécifiques des développeurs C#.

IronZIP offre uneessai gratuit d'IronZIP . Téléchargez et essayez la bibliothèque IronZIP for .NET Core et Framework à partir de l'adresse suivantePage de téléchargement d'IronZIP.

< PRÉCÉDENT
Mailkit C# (Comment ça marche pour les développeurs)
SUIVANT >
ByteSize C# (Comment ça marche pour les développeurs)