Create ZIP in C#

C# Archive: Научете се да използвате класа Archive за цялостна обработка на ZIP.

ZIP архиви са от съществено значение за компресиране и организиране на файлове и папки в единен, управляем контейнер. Те не само намаляват размерите на файловете за ефективно съхранение и предаване, но и запазват метаданни и могат да бъдат криптирани за повишена сигурност. В тази статия ще разгледаме различни методи за програмирано създаване на ZIP файлове в C#, включително как да добавяте файлове и папки, създавате архиви с парола и прилагате AES криптиране.

Какво ще научите

В тази статия ще разберете как:

C# ZIP библиотека

Те Aspose.ZIP for .NET библиотеката е мощен инструмент за работа с операции с ZIP файлове в .NET приложения, което улеснява компресирането и разархивирането на файлове и папки. Тази библиотека е особено ефективна за обработване на големи файлове в C# .NET ZIP архиви и поддържа AES криптиране за повишена сигурност. Можете лесно да инсталирате тази библиотека от NuGet или изтеглете бинарните файлове от the Изтегляния раздел.

Създаване на ZIP архив в C#

До програмирано създаване на ZIP файл в C#, следвайте тези стъпки:

  1. Създай a FileStream обект за изходния ZIP архив.
  2. Отворете изходния файл като a FileStream обект.
  3. Инстанцирайте Архив клас.
  4. Добавете файла в архива, като използвате the Archive.CreateEntry(string, FileStream) метод.
  5. Запазете ZIP архива с Archive.Save(FileStream) метод.

Ето пример за код, който показва как да добавите файл към ZIP архив с 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);
	}
}

Добавяне на множество файлове към ZIP архив в C#

Когато трябва да добавете множество файлове в ZIP архив, могат да се приложат няколко подхода. Ето методите, които можете да използвате с C# за компресиране на множество файлове:

Използване на FileStream за добавяне на множество файлове

Този метод използва the FileStream клас за добавяне на файлове към ZIP архива чрез the Archive.CreateEntry(String, FileStream) метод. Ето как можете да го направите:

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);
	}
}

Използване на FileInfo за множество файлове

Алтернативно, можете да използвате the FileInfo клас за зареждане на файлове и добавянето им към ZIP архива с Archive.CreateEntry(String, FileInfo) метод. По-долу е пример с код:

Използване на файловия път

Можете също директно да предоставите пътеките към файловете. Archive.CreateEntry(String name, String path, Boolean openImmediately, ArchiveEntrySettings newEntrySettings) метод. Ето пример:

Добавяне на папки към ZIP архив в C#

До добавяне на папка към ZIP архив в C#, следвайте тези стъпки:

  1. Създай a FileStream обект за изходния ZIP архив.
  2. Инстанцирайте Архив клас.
  3. Използвайте DirectoryInfo клас за указване на папката, която искате да компресирате.
  4. Добавете папката към ZIP‑а, използвайки. Archive.CreateEntries(DirectoryInfo) метод.
  5. Запазете ZIP архива с the Archive.Save(FileStream) метод.

Ето пример за код, който илюстрира как да добавите папка към ZIP файл:

Създаване на защитена с парола ZIP с помощта на ZipCrypto в C#

За да защитите вашите ZIP архиви, можете да приложите защита с парола, използвайки шифроване ZipCrypto. Това се постига чрез използване на ArchiveEntrySettings клас в конструктора на Архив, който приема типа на шифроване като параметър. Можете да използвате C# Zip архив парола метод за лесно прилагане на това.

Ето един пример за това как да създадете защитен с парола ZIP архив, използвайки ZipCrypto в C#:

Създаване на защитен с парола ZIP с AES криптиране

Това Aspose.ZIP for .NET Библиотеката също поддържа AES криптиране за защита на ZIP архиви. Можете да изберете от следните методи за AES криптиране:

  • AES128
  • AES192
  • AES256

За прилагане на AES криптиране, използвайте AesEcryptionSettings клас. По-долу е примерен код, демонстриращ как да създадете ZIP файл, защитен с парола, с AES криптиране в C#, включително поддръжка за the C# Парола за Zip файл функция:

Настройване на паралелен режим на компресия

За ефективно обработване на множество записи, можете да конфигурирате API‑то за паралелно компресиране, като използвате. ParallelOptions клас. Наличните паралелни режими на компресиране са:

  • Никога - Не компресирайте паралелно.
  • Винаги - Компресирайте паралелно (внимавайте за потенциални проблеми с паметта).
  • авто - Автоматично решавайте дали да използвате паралелно компресиране въз основа на записите.

Ето как да зададете паралелен режим на компресиране, докато ципчете няколко файла с библиотеката 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"
                    });
            }
        }
    }
}

Научете повече за C# .NET ZIP Library

За да задълбочите разбирането си за C# .NET ZIP библиотека, разгледайте следните ресурси:

Изпробвайте нашия онлайн ZIP компресионни инструмент

Можете също да експериментирате с нашия безплатно онлайн приложение въз основа на Aspose.ZIP за .NET, за да компресирате файлове в ZIP архиви без усилие.

Заключение

В тази статия научихте как да създаване на ZIP архиви програмно в C#. Предоставените примерни кодове демонстрират как да добавяте файлове и папки към ZIP архиви, как да създавате ZIP файлове, защитени с парола, използвайки методите ZipCrypto и AES криптиране, и как да конфигурирате паралелно компресиране. Освен това вече разбирате как да създаване на ZIP файлове в C#, включително как да компресирайте файл, създайте ZIP файл в C#, и добавете файлове в ZIP архиви. Ако имате въпроси или се нуждаете от допълнителна помощ, не се колебайте да се свържете с нас чрез нашия форум.

Ето също

Разархивиране или извличане на файлове с C#Разархивиране на файлове в ZIP архиви с C#Създаване на 7z (7‑Zip) архиви в C# .NET
Отворете или извлечете 7z (7zip) файл в C# .NETСъздаване и извличане на GZip архиви с C#Конвертиране на RAR файлове в ZIP архив в C#
Конвертиране на ZIP архиви в TAR с C#Създаване на плосък ZIP архив в C#Създаване на изпълним саморазархивиращ се архив в C#
Създаване на TAR.GZ и TAR.XZ файлове в C#Изтриване на файлове в ZIP архив в C#Извличане на вложени ZIP архиви в C#
Обединяване на множество ZIP или TAR архиви в C#Как да създавате ZIP файловеИзвличане на 7z онлайн

Допълнителни ресурси

Ако търсите повече информация за това как да създаване на ZIP файлове в C#, разгледайте:

Включване на различни методи за създаване на ZIP файлове в C#, като .NET Core Създаване на ZIP файл, C# Създаване на ZIP файл програмено, и C# Добавяне на файлове в ZIP, може значително да подобри ефективността на вашата разработка и възможностите за обработка на данни.

Можете също да разгледате C# Пример за Zip файл за да видите практическа реализация на тези методи, което ще подобри още повече разбирането ви за това как да zip файлове в .NET с C#.

More in this category