При работе с ZIP-файлами вы часто можете обнаружить, что несколько ZIP архивов вложены в родительский ZIP-архив. Чтобы получить доступ к содержимому этих вложенных архивов, вам необходимо сначала извлечь родительский ZIP, а затем обрабатывать каждый вложенный архив индивидуально. В этой статье мы расскажем вам, как эффективно извлекать вложенные ZIP-архивы в C# .NET, не пиша сложный код.

Содержание

Использование .NET API для извлечения вложенных ZIP-архивов

Для выполнения извлечения вложенных ZIP-архивов мы будем использовать библиотеку Aspose.ZIP для .NET. Этот мощный API специально разработан для операций архивирования в .NET-приложениях, позволяя вам легко создавать и манипулировать различными форматами архивов. Вы можете скачать DLL API или установить его напрямую с помощью NuGet с помощью следующей команды:

PM> Install-Package Aspose.Zip

Пошаговое руководство по распаковке вложенных ZIP-архивов

Для нашей демонстрации мы подготовили ZIP-файл, содержащий три записи, включая вложенные ZIP-архивы.

Nested ZIP Archives

Вложенные ZIP-архивы

Мы извлечем каждый вложенный ZIP-архив и сохраним его содержимое в отдельные папки. Вот шаги для выполнения обработки вложенных ZIP-файлов в .NET:

  1. Создайте FileStream: Загрузите родительский ZIP-файл с помощью объекта FileStream.
  2. Загрузите ZIP-файл: Используйте класс Archive для загрузки ZIP-файла.
  3. Переберите записи архива: Пройдите через каждую ArchiveEntry в коллекции Archive.Entries.
  4. Фильтруйте вложенные ZIP-архивы: Определите ZIP-архивы в коллекции и для каждого из этих архивов выполните следующее:
    • Создайте MemoryStream: Создайте экземпляр MemoryStream и скопируйте запись архива в него с помощью метода ArchiveEntry.Open().CopyTo(Stream).
    • Загрузите вложенный архив: Создайте экземпляр класса Archive для загрузки вложенного архива из MemoryStream.
    • Извлеките в директорию: Наконец, извлеките содержимое вложенного архива в указанную папку с помощью метода Archive.ExtractToDirectory(string).

Вот пример кода, демонстрирующий, как распаковать вложенные ZIP-архивы в C# .NET:

Следующий скриншот иллюстрирует содержимое, извлеченное из вложенных ZIP-архивов:

Извлечение вложенных ZIP-архивов в C# .NET

Распакованные вложенные архивы

Получите бесплатную лицензию API

Вы можете получить бесплатную временную лицензию для Aspose.ZIP для .NET, что позволит вам использовать библиотеку без каких-либо ограничений на оценку.

Заключение

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

См. также