Create ZIP in C#

Въведение в ZIP архивите в C#

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

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

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

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

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

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

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

  1. Създайте FileStream обект за изходния ZIP архив.
  2. Отворете изходния файл като FileStream обект.
  3. Създайте екземпляр на Archive клас.
  4. Добавете файла към архива, използвайки 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# за zip-ване на множество файлове:

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

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

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 за множество файлове

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

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

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

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

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

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

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

Създайте архив ZIP с парола, използвайки ZipCrypto в C#

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

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

Създайте архив ZIP с парола, използвайки AES шифроване

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

  • AES128
  • AES192
  • AES256

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

Задаване на режим за паралелно компресиране

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

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

Ето как да зададете режим за паралелно компресиране, докато компресирате в zip множество файлове с библиотеката 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

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

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

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

Заключение

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

Вижте също

Unrar или извличане на файлове с C#Unzip файлове в 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