Как извлечь zip-файл на C#

Как извлечь zip-файл на C#

В этом учебном пособии вы узнаете, как извлекать zip-файлы с помощью кода на C#. С библиотекой Aspose.ZIP вы можете легко распаковывать архивы различных форматов, таких как ZIP, GZip, RAR, TAR и 7Zip, прямо в ваших приложениях.

Преимущества извлечения ZIP-файлов

  1. Управление файлами:
    • Упрощает обработку и организацию больших наборов файлов.
  2. Совместимость:
    • Легко интегрируется с различными форматами файлов, поддерживаемыми Aspose.ZIP.
  3. Автоматизированные процессы:
    • Идеально подходит для приложений, требующих автоматизированного извлечения файлов.

Предварительные условия: Подготовка окружения

  1. Настройте Visual Studio или любую совместимую .NET IDE.
  2. Установите Aspose.ZIP из диспетчера пакетов NuGet.

Пошаговое руководство по извлечению zip-файла на C#

Шаг 1: Установите Aspose.ZIP

Начните с добавления библиотеки Aspose.ZIP в ваш проект.

Install-Package Aspose.ZIP

Шаг 2: Подключите пространство имен

Добавьте ссылку на пространство имен Aspose.Zip в ваш код.

using Aspose.Zip;

Шаг 3: Загрузите ZIP-файл

Откройте ZIP-файл с помощью объекта FileStream.

FileStream zipFileToBeExtracted = File.Open("ZipFileToBeExtracted.zip", FileMode.Open);

Шаг 4: Создайте объект архива

Загрузите FileStream в объект Archive.

Archive zipArchiveToExtract = new Archive(zipFileToBeExtracted);

Шаг 5: Подсчитайте файлы в архиве

Получите количество файлов, содержащихся в ZIP-архиве.

int numberOfFilesInArchive = zipArchiveToExtract.Entries.Count;

Шаг 6: Извлеките каждую запись

Пройдите через каждую запись в архиве и извлеките файлы.

for (int fileCounter = 0; fileCounter < numberOfFilesInArchive; fileCounter++)
{
    ArchiveEntry archiveFileEntry = zipArchiveToExtract.Entries[fileCounter];
    string nameOfFileInZipEntry = archiveFileEntry.Name;
    archiveFileEntry.Extract(nameOfFileInZipEntry);
}

Полный пример кода для извлечения ZIP-файла

Ниже приведен полный пример извлечения ZIP-файла с использованием C#:

// Откройте файл с диска с помощью потока файла
FileStream zipFileToBeExtracted = File.Open("ZipFileToBeExtracted.zip", FileMode.Open);

// Загрузите поток Zip-файла в объект Archive
Archive zipArchiveToExtract = new Archive(zipFileToBeExtracted);

// Получите количество файлов в архиве
int numberOfFilesInArchive = zipArchiveToExtract.Entries.Count;

// Пройдите по архиву для каждого файла
for (int fileCounter = 0; fileCounter < numberOfFilesInArchive; fileCounter++)
{
    // Получите каждую запись zip-архива и извлеките файл
    ArchiveEntry archiveFileEntry = zipArchiveToExtract.Entries[fileCounter];
    string nameOfFileInZipEntry = archiveFileEntry.Name;
    archiveFileEntry.Extract(nameOfFileInZipEntry);
}

Дополнительная информация

  • Эта функциональность поддерживает не только ZIP-файлы, но и другие форматы, такие как GZip, RAR и TAR.
  • Вы также можете извлекать файлы непосредственно в память, если это необходимо для дальнейшей обработки.

Заключение

В этом учебном пособии было продемонстрировано, как извлекать zip-файлы на C# с использованием Aspose.ZIP. Следуя шагам и используя предоставленный пример кода, вы можете легко интегрировать извлечение zip-файлов в ваши приложения. Для более сложных функций рассмотрите возможность изучения других учебных пособий, связанных с сжатием и извлечением файлов.

 Русский