Как сжать или извлечь архивы с помощью C#
Обзор
В этой статье объясняется, как сжимать или извлекать архивы. Это могут быть архивы Zip, 7z, Rar и других подобных форматов. Он охватывает следующие темы.
Формат: ZIP
Формат: ZIP – Пароль
Формат: 7z
Формат: RAR
Другие темы, затронутые в этой статье.
C# Сжатие или извлечение архивов
На этой странице показано, как выполнять стандартные операции с архивами на C# с помощью Aspose.ZIP for .NET. Пакет Aspose.ZIP можно добавить в проект .NET с помощью следующей команды NuGet:
1PM> Install-Package Aspose.Zip
Его также можно добавить непосредственно в проект .NET в качестве ссылки на сборку. Библиотеку Aspose.ZIP можно загрузить с нашей домашней страницы: https://products.aspose.com/zip/net/.
Библиотеку Aspose.ZIP .NET можно использовать в любой ОС, поддерживающей .NET Core (например, Windows, Linux или macOS).
Как создать ZIP-файлы в C#
Шаги: создание Zip-файла на C#
- Создайте экземпляр класса Архив.
- Добавьте файлы с помощью метода Archive.CreateEntry.
- Заархивируйте файлы методом Archive.Save.
1using (var archive = new Archive())
2{
3 archive.CreateEntry("entry_name1.dat", "input_file1.dat");
4 archive.CreateEntry("entry_name2.dat", "input_file2.dat");
5 archive.Save("result_archive.zip");
6}
Конструктор класса Archive создает обычный ZIP-архив, используя алгоритм сжатия Deflate и без шифрования.
Как разархивировать файлы на C#
Шаги: разархивируйте файл в папку на C#
- Создайте экземпляр класса Архив с вашим zip-файлом.
- Разархивируйте zip-файл с помощью метода Archive.ExtractToDirectory в свою папку.
1using (var archive = new Archive("input_archive.zip"))
2{
3 archive.ExtractToDirectory("\\outputDirectory");
4}
Конструктор класса архива может открыть любой ZIP-архив. ArchiveLoadOptions следует указать в качестве второго параметра, если входной архив защищен паролем (см. пример ниже).
Как сжать файлы 7z в C#
Шаги: создание архивов 7z на C#
- Создайте экземпляр класса SevenZipArchive с помощью SevenZipLZMACompressionSettings.
- Добавьте файлы, вызвав метод SevenZipArchive.CreateEntries.
- Сохраните его в формате 7z, вызвав метод SevenZipArchive.Save.
1using (var archive = new SevenZipArchive(new SevenZipEntrySettings(new SevenZipLZMACompressionSettings())))
2{
3 archive.CreateEntries(CommonConstants.TestFilesFolder + "ManyFilesToCompress");
4 archive.Save(CommonConstants.TestOutFolder + "7Z_ManyFilesToCompress.7z");
5}
Конструктор класса SevenZipArchive следует использовать для создания нового архива 7z. В приведенном выше примере используется классическое сжатие LZMA, но также доступны другие варианты сжатия и шифрования.
Как извлечь файлы 7z в C#
- Создайте экземпляр класса SevenZipArchive с вашим файлом 7z.
- Извлеките содержимое файла 7z, вызвав метод SevenZipArchive.ExtractToDirectory.
1using (var archive = new SevenZipArchive("input_archive.7z"))
2{
3 archive.ExtractToDirectory("\\outputDirectory");
4}
В приведенном выше примере конструктор класса SevenZipArchive открывает незащищенный архив 7z.
Как извлечь файлы RAR в C#
Шаги: извлеките файл RAR на C#
- Создайте экземпляр класса RarArchive с вашим RAR-файлом.
- Извлеките содержимое файла RAR, вызвав метод RarArchive.ExtractToDirectory.
1using (var archive = new RarArchive("input_archive.rar"))
2{
3 archive.ExtractToDirectory("\\outputDirectory");
4}
В приведенном выше примере конструктор класса RarArchive открывает незащищенный архив RAR.
Как заархивировать файлы с паролем на C#
Шаги: создайте Zip-файл с паролем на C#< /а>
- Создайте экземпляр класса Архив.
- Передайте ему ArchiveEntrySettings и установите свойство encryptionSettings с объектом TraditionalEncryptionSettings, имеющим ваш пароль.
- Добавьте как можно больше файлов, вызвав метод Archive.CreateEntry несколько раз.
- Сохраните его как Zip-файл, используя метод Archive.Save.
1using (var archive = new Archive(new ArchiveEntrySettings(encryptionSettings: new TraditionalEncryptionSettings("pass"))))
2{
3 archive.CreateEntry("entry_name1.dat", "input_file1.dat");
4 archive.CreateEntry("entry_name2.dat", "input_file2.dat");
5 archive.Save("result_archive.zip");
6}
Параметр шифрованияSettings используется для создания ZIP-архива, защищенного паролем.
Как распаковать файлы с паролем на C#
Шаги: разархивируйте ZIP-файл, защищенный паролем, с помощью C#< /а>
- Создайте экземпляр класса Архив.
- Передайте ему объект ArchiveLoadOptions и установите свойство DecryptionPassword с вашим zip-файлом password.
- Разархивируйте zip-файл с помощью метода Archive.ExtractToDirectory в свою папку.
1using (var archive = new Archive("input_archive.zip", new ArchiveLoadOptions{DecryptionPassword = "pass"}))
2{
3 archive.ExtractToDirectory("\\outputDirectory");
4}
ArchiveLoadOptions со значением свойства DecryptionPassword используется для открытия ZIP-архива, защищенного паролем.
См. также
В этой статье также рассматриваются эти темы. Коды такие же, как указано выше.
- Сжатие
- Zip-файл C#
- Zip-файлы C#
- C# Создать ZIP-архив
- C# Zip несколько файлов
- C# Добавить файл в ZIP
- C# Сжатие файлов в Zip
- C# Архивирует файлы в Zip
- C# Как заархивировать файл
- Извлечение
- Разархивировать файл C#
- Распаковать файлы C#
- Извлечь ZIP-архив C#
- C# Как распаковать файл
- Сжатие защищено паролем
- Zip-файл C# с паролем
- Zip-файлы C# с паролем
- Сжатие файлов C# в ZIP, защищенный паролем
- C# Архивирует файлы в Zip с защитой паролем
- Извлечение защищено паролем
- C# UnZip File, защищенный паролем
- C# Распаковка файлов, защищенных паролем
- Извлечение ZIP-архива C#, защищенного паролем
- C# Как распаковать файл с защитой паролем
Формат: ZIP
- Сжатие
- Файл C# 7z
- Файлы C# 7z
- C# Создать архив 7z
- Несколько файлов C# 7z
- C# Добавить файл в 7z
- C# Сжатие файлов в 7z
- C# Архивирует файлы в 7z
- C# Как 7z файл
- Извлечение
- C# Распаковка файла 7z
- C# Распаковка файлов 7z
- Извлечение файла C# 7z
- Извлечение файлов 7z из C#
- Извлечение архива C# 7z
- C# Как извлечь файл 7z
Формат: 7z