Create ZIP in C#

C# Archive: aprèn a aprofitar la classe d’Arxiu per a un maneig complet de ZIP.

Arxius ZIP són essencials per comprimir i organitzar fitxers i carpetes en un únic contenidor manejable. No només redueixen la mida dels fitxers per a un emmagatzematge i transmissió eficients, sinó que també conserven les metadades i poden ser xifrats per a una seguretat millorada. En aquest article, explorarem diverses metodologies per Crear fitxers ZIP programàticament en C#, incloent com afegir fitxers i carpetes, crear arxius protegits amb contrasenya i aplicar xifratge AES.

Què aprendràs

En aquest article, descobriràs com:

C# Biblioteca ZIP

El Aspose.ZIP for .NET La biblioteca és una eina potent per gestionar operacions de fitxers ZIP dins d’aplicacions .NET, facilitant la compressió o descompressió de fitxers i carpetes. Aquesta biblioteca és especialment eficaç per Gestió de fitxers grans en arxius ZIP amb C# .NET i admet xifratge AES per a una seguretat millorada. Pots instal·lar fàcilment aquesta biblioteca des de NuGet o descarregueu els binaris des de Descàrregues secció.

Creació d’arxius ZIP en C#

a crear programàticament un fitxer ZIP en C#, segueix aquests passos:

  1. Crea un FileStream objecte per a l’arxiu ZIP de sortida.
  2. Obre el fitxer font com a FileStream objecte.
  3. Instancia el Arxiu classe.
  4. Afegeix el fitxer a l’arxiu utilitzant el Archive.CreateEntry(string, FileStream) mètode.
  5. Desa l’arxiu ZIP amb el Archive.Save(FileStream) mètode.

Aquí teniu una mostra de codi que demostra com afegir un arxiu a un arxiu ZIP utilitzant C#:

using Aspose.Zip;
using Aspose.Zip.Saving;
// Create FileStream for output ZIP archive
using (FileStream zipFile = File.Open("compress_directory.zip", FileMode.Create))
{
	using (Archive archive = new Archive(new ArchiveEntrySettings(null, new AesEcryptionSettings("p@s$", EncryptionMethod.AES128))))
	{
		// Add folder to archive
		DirectoryInfo corpus = new DirectoryInfo("CanterburyCorpus");
		archive.CreateEntries(corpus);
		// Create ZIP archive
		archive.Save(zipFile);
	}
}

Afegir arxius múltiples a un arxiu ZIP en C#

Quan necessitis afegir diversos fitxers a un arxiu ZIP, es poden prendre diverses aproximacions. Aquí teniu els mètodes que podeu utilitzar amb C# per comprimir diversos fitxers:

Utilitzar FileStream per afegir arxius múltiples

Aquest mètode utilitza el FileStream classe per afegir fitxers a l’arxiu ZIP via el Archive.CreateEntry(String, FileStream) mètode. Aquí tens com fer-ho:

using Aspose.Zip;
using Aspose.Zip.Saving;
// Create FileStream for output ZIP archive
using (FileStream zipFile = File.Open("compress_directory.zip", FileMode.Create))
{
	using (Archive archive = new Archive(new ArchiveEntrySettings(null, new AesEcryptionSettings("p@s$", EncryptionMethod.AES128))))
	{
		// Add folder to archive
		DirectoryInfo corpus = new DirectoryInfo("CanterburyCorpus");
		archive.CreateEntries(corpus);
		// Create ZIP archive
		archive.Save(zipFile);
	}
}

Utilitzar FileInfo per a múltiples arxius

Alternativament, podeu utilitzar el FileInfo classe per carregar fitxers i afegir-los a l’arxiu ZIP amb el Archive.CreateEntry(String, FileInfo) mètode. A continuació hi ha un exemple de codi:

Utilitzar el camí de fitxer

També podeu proporcionar directament les rutes dels fitxers a Archive.CreateEntry(String name, String path, Boolean openImmediately, ArchiveEntrySettings newEntrySettings) mètode. Aquí teniu un exemple:

Afegir carpetes a un arxiu ZIP en C#

a afegir una carpeta a un arxiu ZIP en C#, segueix aquests passos:

  1. Crea una FileStream objecte per a l’arxiu ZIP de sortida.
  2. Instancia el Arxiu classe.
  3. Utilitza el DirectoryInfo classe per especificar la carpeta que vols comprimir.
  4. Afegeix la carpeta al ZIP utilitzant el Archive.CreateEntries(DirectoryInfo) mètode.
  5. Desa l’arxiu ZIP amb el Archive.Save(FileStream) mètode.

Aquí teniu una mostra de codi que il·lustra com afegir una carpeta a un arxiu ZIP:

Creació de ZIP protegida amb contrasenya amb ZipCrypto en C#

Per protegir els teus arxius ZIP, pots aplicar protecció amb contrasenya mitjançant el xifratge ZipCrypto. Això s’aconsegueix utilitzant el ArchiveEntrySettings classe al constructor de Arxiu, que accepta el tipus d’encriptació com a paràmetre. Podeu utilitzar el Contrasenya d’arxiu Zip en C# mètode per implementar això fàcilment.

Aquí teniu un exemple de com crear un arxiu ZIP protegit per contrasenya utilitzant ZipCrypto en C#:

Creació de contrasenya protegida amb encriptació AES

El Aspose.ZIP for .NET La biblioteca també admet xifratge AES per protegir arxius ZIP. Podeu triar entre els següents mètodes de xifratge AES:

  • AES128
  • AES192
  • AES256

Per aplicar el xifratge AES, utilitzeu el AesEcryptionSettings classe. A continuació hi ha un exemple de codi que demostra com crear un ZIP protegit amb contrasenya amb xifratge AES a C#, incloent suport per al Contrasenya del fitxer Zip en C# funcionalitat:

Configuració de la compressió paral·lela

Per a una gestió eficient de múltiples entrades, podeu configurar l’API per a compressió paral·lela utilitzant el ParallelOptions classe. Els modes de compressió paral·lela disponibles són:

  • Mai - No comprimir en paral·lel.
  • Sempre - Comprimeix en paral·lel (vés amb compte dels possibles problemes de memòria).
  • cotxe - Decidir automàticament si s’ha d’utilitzar compressió paral·lela en funció de les entrades.

Aquí teniu com configurar el mode de compressió paral·lela mentre zip multiples arxius amb la biblioteca Aspose C# ZIP:

using Aspose.Zip;
using Aspose.Zip.Saving;
// For complete examples and data files, please go to https://github.com/aspose-zip/Aspose.ZIP-for-.NET
string dataDir = "";
using (FileStream zipFile = File.Open(dataDir + "UsingParallelismToCompressFiles_out.zip", FileMode.Create))
{
    using (FileStream source1 = File.Open(dataDir + "alice29.txt", FileMode.Open, FileAccess.Read))
    {
        using (FileStream source2 = File.Open(dataDir + "asyoulik.txt", FileMode.Open, FileAccess.Read))
        {
            using (var archive = new Archive())
            {
                archive.CreateEntry("alice29.txt", source1);
                archive.CreateEntry("asyoulik.txt", source2);
                //Define the parallelism criterion
                var parallelOptions = new Aspose.Zip.Saving.ParallelOptions
                {
                    ParallelCompressInMemory = ParallelCompressionMode.Always
                };
                archive.Save(zipFile,
                    new ArchiveSaveOptions()
                    {
                        ParallelOptions = parallelOptions,
                        Encoding = Encoding.ASCII,
                        ArchiveComment = "There are two poems from Canterbury corpus"
                    });
            }
        }
    }
}

Llegeix més sobre C# .NET ZIP Library

Per aprofundir la teva comprensió de Biblioteca ZIP de C# .NET, exploreu els recursos següents:

Prova la nostra eina de compressió ZIP en línia

També podeu experimentar amb el nostre aplicació en línia gratuïta basat en el Aspose.ZIP per a .NET per comprimir fitxers en arxius ZIP sense esforç.

Conclusió

En aquest article, heu après com a crea arxius ZIP programàticament en C#. Les mostres de codi proporcionades demostren com afegir fitxers i carpetes a arxius ZIP, crear fitxers ZIP protegits amb contrasenya utilitzant els mètodes d’encriptació ZipCrypto i AES, i configurar la compressió paral·lela. A més, ara enteneu com crea fitxers ZIP en C#, incloent com comprimir un fitxer, crea un fitxer ZIP en C#, i afegir fitxers al ZIP arxius. Si teniu alguna pregunta o necessiteu més assistència, no dubteu a posar-vos en contacte amb nosaltres a través del nostre. fòrum.

També

Descomprimir o extreure fitxers amb C#Descomprimir fitxers en arxius ZIP amb C#Crea arxius 7z (7‑Zip) en C# .NET
Obrir o extreure fitxer 7z (7zip) en C# .NETCrear i extreure arxius GZip amb C#Convertir fitxers RAR a arxiu ZIP en C#
Convertir arxius ZIP a TAR en C#Crea un arxiu ZIP pla en C#Crea un arxiu autoextraient executable en C#
Crear fitxers TAR.GZ i TAR.XZ a C#Eliminar fitxers d’un arxiu ZIP en C#Extreu arxius ZIP aniuats en C#
Combina diversos arxius ZIP o TAR en C#Com crear fitxers ZIPExtreu 7z en línia

Recursos addicionals

Si busques més informació sobre com crea fitxers ZIP en C#, considera consultar:

Incorporant diversos mètodes per crea fitxers ZIP en C#, com ara .NET Core Crea fitxer ZIP, C# Crear fitxer ZIP programàticament, i C# Afegeix fitxers a ZIP, pot millorar significativament l’eficiència del teu desenvolupament i les capacitats de gestió de dades.

També podeu explorar el Exemple de fitxer Zip C# per veure una implementació pràctica d’aquests mètodes, que aprofundirà encara més la vostra comprensió de com fitxers zip a .NET amb C#.

More in this category