
Въведение в ZIP архивите в C#
ZIP архиви са от съществено значение за компресиране и организиране на файлове и папки в единен, управляем контейнер. Те не само намаляват размерите на файловете за ефективно съхранение и предаване, но също така запазват метаданните и могат да бъдат криптирани за повишена сигурност. В тази статия ще разгледаме различни методи за програмено създаване на ZIP файлове в C#, включително как да добавяте файлове и папки, създавате архиви, защитени с парола, и прилагате AES криптиране.
Какво ще научите
В тази статия ще откриете как да:
- Създаване на ZIP архив с помощта на C#
- Добавяне на множество файлове към ZIP архив
- Добавете папки към ZIP архив
- Създайте защитен с парола ZIP архив, използвайки ZipCrypto
- Криптирайте ZIP архиви с AES криптиране
- Задайте режим на паралелно компресиране
C# ZIP библиотека
Библиотеката Aspose.ZIP for .NET библиотека е мощен инструмент за работа с ZIP файлови операции в .NET приложения, което улеснява компресирането и декомпресирането на файлове и папки. Тази библиотека е особено ефективна за обработване на големи файлове в C# .NET ZIP архиви и поддържа AES криптиране за повишена сигурност. Можете лесно да инсталирате тази библиотека от NuGet или изтеглете бинарните файлове от Изтегляния раздел.
Създайте ZIP архив в C#
За програмистки създаване на ZIP файл в C#, следвайте тези стъпки:
- Създайте FileStream обект за изходния ZIP архив.
- Отворете изходния файл като FileStream обект.
- Създайте екземпляр на Archive клас.
- Добавете файла към архива, използвайки Archive.CreateEntry(string, FileStream) метод.
- Запазете 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#, следвайте тези стъпки:
- Създайте FileStream обект за изходния ZIP архив.
- Създайте екземпляр на Archive клас.
- Използвайте DirectoryInfo клас, за да посочите папката, която искате да компресирате.
- Добавете папката към ZIP като използвате Archive.CreateEntries(DirectoryInfo) метод.
- Запазете архива 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 архиви. Ако имате въпроси или се нуждаете от допълнителна помощ, не се колебайте да се свържете с нас чрез нашия форум.
Вижте също
Допълнителни ресурси
Ако търсите повече информация за това как да създаване на ZIP файлове в C#, разгледайте:
- Как да компресирате файлове в .NET с C#
- C# Zip файл с парола
- C# Създаване на Zip файл от множество файлове
- C# Компресиране на папка
- C# Добавяне на файлове към Zip
Включване на различни методи за създаване на ZIP файлове в C#, например .NET Core Създаване ZIP Файл, C# Създаване на ZIP файл програмирано, и C# Добавяне на файлове към ZIP, може значително да подобри ефективността на вашата разработка и възможностите за обработка на данни.
Можете също да разгледате C# Пример за Zip файл за да видите практическа реализация на тези методи, което ще подобри още повече разбирането ви за това как да компресирате zip файлове в .NET с C#.