using IronPdf;
// Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;
// Instantiate Renderer
var renderer = new ChromePdfRenderer();
// Create a PDF from a HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
// Export to a file or Stream
pdf.SaveAs("output.pdf");
// Advanced Example with HTML Assets
// Load external html assets: Images, CSS and JavaScript.
// An optional BasePath 'C:\site\assets\' is set as the file location to load assets from
var myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");
myAdvancedPdf.SaveAs("html-with-assets.pdf");
SevenZip C# (Comment ça marche pour les développeurs)
Jordi Bardia
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.
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
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
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#.
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
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#.
Jordi maîtrise parfaitement Python, C# et C++. Lorsqu'il ne met pas à profit ses compétences chez Iron Software, il se consacre à la programmation de jeux. Partageant des responsabilités en matière de tests de produits, de développement de produits et de recherche, Jordi apporte une valeur ajoutée considérable à l'amélioration continue des produits. Cette expérience variée le stimule et l'engage, et il dit que c'est l'un des aspects qu'il préfère dans son travail chez Iron Software. Jordi a grandi à Miami, en Floride, et a étudié l'informatique et les statistiques à l'université de Floride.
< PRÉCÉDENT Mailkit C# (Comment ça marche pour les développeurs)
SUIVANT > ByteSize C# (Comment ça marche pour les développeurs)
Des millions d'ingénieurs dans le monde entier lui font confiance
Réservez une démo en direct gratuite
Réservez une démonstration personnelle de 30 minutes.
Pas de contrat, pas de détails de carte, pas d'engagements.
Voici ce à quoi vous pouvez vous attendre :
Une démonstration en direct de notre produit et de ses principales fonctionnalités
Obtenez des recommandations de fonctionnalités spécifiques au projet
Toutes vos questions trouvent réponse pour vous assurer de disposer de toutes les informations dont vous avez besoin. (Aucun engagement de votre part.)
CHOISIR L'HEURE
VOS INFORMATIONS
Réservez votre démo en direct gratuite
Fiable par plus de 2 millions d'ingénieurs dans le monde entier