Когато работите с файлове ZIP, често може да срещнете сценарии, при които множество ZIP архиви са вложени в родителски ZIP архив. За да получите достъп до съдържанието на тези вложени архиви, първо ще трябва да извлечете родителския ZIP и след това да обработите всеки вложен архив поотделно. В това ръководство ще ви водим през как ефективно да извлечете вложени ZIP архиви в C# .NET без необходимост от сложен код.

Съдържание

Използване на .NET API за извличане на вложени ZIP архиви

За извършване на извличането на вложени ZIP архиви, ще използваме Aspose.ZIP for .NET библиотеката. Това мощно API е специално проектирано за операции с архивиране в .NET приложения, позволявайки ви да създавате и манипулирате различни формати на архиви с лекота. Можете да изберете да изтеглите DLL‑то на API‑то или го инсталирате директно, като използвате NuGet с следната команда:

PM> Install-Package Aspose.Zip

Ръководство стъпка по стъпка за разархивиране на вложени ZIP архиви

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

Nested ZIP Archives

Nested ZIP Archives

Ще извлечем всеки вложен ZIP архив и ще запазим съдържанието му в отделни папки. Ето стъпките за обработка на вложени ZIP файлове в .NET:

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

Ето примерен код, демонстриращ как да разархивирате вложени ZIP архиви в C# .NET:

using Aspose.Zip;
// Open ZIP file in a file stream
using (FileStream zipFile = File.Open("Archives/nested-archive.zip", FileMode.Open))
{
    // Load ZIP file using Archive class
    using (Archive archive = new Archive(zipFile, new ArchiveLoadOptions()))
    {
        // Access each entry in ZIP archive
        foreach(ArchiveEntry entry in archive.Entries)
        {
            if(entry.Name.ToLower().Contains(".zip"))
            {
                // Create memory stream for nested archive
                MemoryStream nestedArchiveStream = new MemoryStream();

                // Copy archive to memory stream
                entry.Open().CopyTo(nestedArchiveStream);

                // Load the nested archive from memory stream
                using (var nestedArchive = new Archive(nestedArchiveStream))
                {
                    // Extract archive to disk.
                    nestedArchive.ExtractToDirectory("Archives/Extracted/"+entry.Name);
                }                               

            }

        } 
    }
}

Следният скрийншот илюстрира съдържанието, извлечено от вложените ZIP архиви:

Extracting nested ZIP archives in C# .NET

Unzipped Nested Archives

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

Можете да получите безплатен временен лиценз за Aspose.ZIP за .NET, като ви позволява да използвате библиотеката без никакви ограничения за оценяване.

Заключение

В тази статия научихте най‑добрия начин да Разархивиране на вложени ZIP файлове в C#. Ръководството стъпка по стъпка и предоставеният примерен код илюстрират как ефективно да се работи с вложени ZIP архиви, използвайки .NET рамката. За по-нататъшно проучване на функциите, чувствайте се свободни да посетите the Aspose.ZIP documentation или задавайте въпроси в нашия форум.

Следвайки това C# урок за работа с вложени zip архиви, ще бъдете подготвени да управлявате ефективно вложени ZIP архиви във вашите .NET приложения, независимо дали използвате .NET 7 или .NET Core. Това ръководство е вашият основен ресурс за обработване на вложени ZIP файлове в C#, като се уверите, че можете извличане на файлове от вложени ZIP архиви лесно и точно. Независимо дали търсите .NET 6 вложено извличане на zip файлове или .NET Core вложена обработка на zip архиви, това ръководство обхваща всичко. Освен това, използвайки the .NET 7z библиотека за стабилно и надеждно управление на архиви ще подобри вашите възможности за управление на файлове, превръщайки я в незаменим инструмент за разработчиците, работещи със сложни архивни нужди.

С тези познания можете уверено да се справите с предизвикателствата на разархивиране на вложени zip архиви в C# и оптимизирайте вашите приложения за .NET Framework разархивиране на вложени zip с директория структура и C# разархивиране на вложени zip файлове, запазвайки структурата на папките.

More in this category