Видалення файлів у ZIP-архіві в C# .NET

Під час роботи з архівами у ваших програмах .NET вам може знадобитися маніпулювати файлами в ZIP. У попередній публікації ви бачили, як додавати файли/папки в ZIP-архів. У цій статті ви дізнаєтеся, як програмно видаляти файли в архівах ZIP на C#. Тож почнемо.

Видалити файли в ZIP за допомогою C# - встановлення API

Aspose.ZIP for .NET — це потужний API, який надає широкий спектр функцій архівування. Він дозволяє створювати та керувати архівами популярних форматів, зокрема ZIP, TAR, 7z і GZip. Ми використовуватимемо цей API для динамічного видалення файлів у архівах ZIP. Ви можете встановити API з NuGet або завантажити DLL і посилатися на нього вручну.

PM> Install-Package Aspose.Zip 

C# Видалення файлів у ZIP-архіві

Існує два способи видалення файлів у ZIP-архіві за допомогою Aspose.ZIP for .NET. Один використовує індекс файлу, а інший використовує клас ArchiveEntry. Давайте подивимося, як використовувати обидва вищезгадані методи.

Видаліть файл ZIP за допомогою ArchiveEntry

Aspose.ZIP for .NET представляє кожен файл/папку всередині ZIP як об’єкт ArchiveEntry, а всі файли та папки утворюють колекцію об’єктів ArchiveEntry. Таким чином, щоб видалити файл із ZIP, ви можете отримати доступ і видалити відповідний об’єкт ArchiveEntry із колекції. Нижче наведено кроки для видалення файлу з архіву ZIP у C#.

  • Завантажте ZIP-архів за допомогою класу Archive.
  • Перегляньте записи в колекції Archive.Entries.
  • Відфільтруйте потрібні файли/папки та додайте їх до списку.
  • Видаліть кожен запис у списку за допомогою методу Archive.DeleteEntry(ArchvieEntry).
  • Збережіть оновлений ZIP-архів за допомогою методу Archive.Save(string).

У наведеному нижче прикладі коду показано, як видалити файли в архіві ZIP у C#.

// Завантажте ZIP-архів
using (var archive = new Archive("Archives/archive.zip"))
{
    // Список файлів для видалення
    List<ArchiveEntry> entriesToDelete = new List<ArchiveEntry>();

    // Переглядайте записи ZIP
    foreach(ArchiveEntry entry in archive.Entries)
    {
        // Додати файл/папку до списку
        if(entry.Name.ToLower().Contains("source"))
        {
            entriesToDelete.Add(entry);
        }
    } 

    // Видалити всі записи зі списку
    foreach(var entry in entriesToDelete)
    {
        archive.DeleteEntry(entry);
    }

    // Зберегти оновлений архів
    archive.Save("Archives/updated-archive.zip");
}

C# Видалити файл ZIP за допомогою Index

Ви також можете видалити ZIP-записи за допомогою їх індексу. Нижче наведено кроки для видалення файлу/папки з ZIP-архіву за допомогою його індексу.

  • Завантажте ZIP-архів за допомогою класу Archive.
  • Видаліть файл, вказавши індекс у методі Archive.DeleteEntry(int).
  • Збережіть оновлений ZIP-архів за допомогою методу Archive.Save(string).

У наведеному нижче прикладі коду C# показано, як видалити файл із ZIP-архіву за допомогою його індексу.

// Завантажте ZIP-архів
using (var archive = new Archive("Archives/archive.zip"))
{
    // Видалити файл за його індексом
    archive.DeleteEntry(0);

    // Зберегти оновлений архів
    archive.Save("Archives/updated-archive.zip");
}

C# API для видалення файлів у ZIP - Отримайте безкоштовну ліцензію

Ви можете видаляти файли в архівах ZIP без обмежень оцінки, отримавши безкоштовну тимчасову ліцензію.

Висновок

У цій статті ви дізналися, як видаляти файли з ZIP-архівів у C#. За допомогою зразків коду ми побачили, як видаляти файли за допомогою класу ArchiveEntry або індексу. Якщо ви хочете дізнатися більше про Aspose.ZIP for .NET, ви можете відвідати документація. Ви також можете поставити свої запитання через наш форум.

Дивись також