Скрипт удаления файла в zip архивах
Добрый день, подскажите пожалуйста, не могу разобраться в написании скрипта: Имеется много архивов, требуется в каждом архиве удалить файл(ы), имя которые заканчиваются на определенные текст (расширения у них нет), пытаюсь переделать имеющийся скрипт по замене файла в архиве, но не получается. Вот тут уже спрашивал, его и хотел переписать Скрипт замены файла в zip архивах (комментарий)
Devill
31.08.20 13:52:45 MSK
Удалить файлы в ZIP-архиве в C# .NET
При работе с архивами из ваших приложений .NET вам может понадобиться манипулировать файлами внутри ZIP. В предыдущем посте вы видели, как добавлять файлы/папки в ZIP-архив. В этой статье вы узнаете, как программно удалять файлы внутри ZIP-архивов на C#. Итак, начнем.
- .NET API для удаления файлов из ZIP-архивов
- Удалить файлы из ZIP-архивов
- Удалить файл в ZIP-архиве с помощью ArchiveEntry
- Удалить файл в ZIP-архиве с помощью индекса
С# .NET API для удаления файлов внутри ZIP-архивов#
Aspose.ZIP для .NET — это мощный API, предоставляющий широкий спектр функций архивирования. Он позволяет создавать и управлять архивами популярных форматов, включая ZIP, TAR, 7z и GZip. Мы будем использовать этот API для динамического удаления файлов внутри ZIP-архивов. Вы можете либо установить API из NuGet, либо загрузить библиотеку DLL и сослаться на нее вручную.
PM> Install-Package Aspose.Zip
Удалить файлы внутри ZIP-архивов в С##
Есть два способа удалить файлы внутри ZIP-архива с помощью Aspose.ZIP для .NET. Один использует индекс файла, а другой использует класс ArchiveEntry. Давайте посмотрим, как использовать оба вышеупомянутых метода.
Удалить файл в ZIP с помощью ArchiveEntry#
Aspose.ZIP для .NET представляет каждый файл/папку внутри ZIP как объект ArchiveEntry, а все файлы и папки составляют коллекцию объектов ArchiveEntry. Таким образом, чтобы удалить файл из ZIP, вы можете получить доступ и удалить соответствующий объект ArchiveEntry из коллекции. Ниже приведены шаги по удалению файла из ZIP-архива в C#.
- Загрузите ZIP-архив с помощью класса Архив.
- Прокрутите записи в коллекции Archive.Entries.
- Отфильтруйте нужные файлы/папки и добавьте их в список.
- Удалите каждую запись в списке, используя метод Archive.DeleteEntry(ArchvieEntry).
- Сохраните обновленный ZIP-архив методом Archive.Save(string).
В следующем примере кода показано, как удалить файлы внутри ZIP-архива на C#.
// Загрузите ZIP-архив using (var archive = new Archive("Archives/archive.zip")) < // Список для сохранения файлов для удаления ListentriesToDelete = new List(); // Цикл по записям 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"); >
Удалить файл в ZIP с помощью индекса#
Вы также можете удалить записи ZIP, используя их индекс. Ниже приведены шаги по удалению файла/папки из ZIP-архива с использованием его индекса.
- Загрузите ZIP-архив с помощью класса Архив.
- Удалите файл, указав индекс в методе 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"); >
Получите бесплатную лицензию API#
Вы можете использовать Aspose.ZIP для .NET без оценочных ограничений, получив бесплатную временную лицензию.
Вывод#
В этой статье вы узнали, как удалять файлы из ZIP-архивов на C#. С помощью примеров кода мы увидели, как удалять файлы с помощью класса ArchiveEntry или файла index. Если вы хотите узнать больше об Aspose.ZIP для .NET, вы можете посетить документацию. Также вы можете задать свои вопросы через наш форум.
Смотрите также#
- Добавление файлов или папок в ZIP-архивы в C#
- Распаковать файлы в ZIP-архивы с помощью C#
- Объединение нескольких архивов ZIP или TAR в C#
- Создать исполняемый самораспаковывающийся архив на C#
- Aspose.ZIP Product Family
- Delete Files from ZIP Archives Csharp
- Delete a ZIP folder programmatically in Csharp
- Delete a directory in ZIP in Csharp net
- Delete folders inside ZIP archives in csharp
Как добавить, обновить или удалить файлы в архиве
Некоторые плагины позволяют не только извлекать файлы из архивов, но и модифицировать их путем добавления новых или удаления существующих файлов и папок. Для добавления файла или папки в архив откройте архив в Проводнике, щелкните правой кнопкой мыши и выберите в появившемся контекстном меню пункты Добавить файлы или Добавить папку соответственно.
Если архив уже содержит файлы с теми же именами, что и у добавляемых файлов, то вы увидите соответствующее диалоговое окно (вид диалогового окна зависит от версии Windows и типа архива).
Для создания новой папки в архиве выберите в контекстном меню пункт Новая папка .
Также вы можете добавлять файлы в архив с помощью операции перетаскивания или операции копирования и вставки.
Если вы хотите при упаковке файлов в архив настроить параметры упаковки, такие как уровень сжатия или метод сжатия, то при выборе пунктов меню Добавить файлы или Добавить папку или при операции перетаскивания удерживайте зажатыми клавиши Ctrl + Shift . Это приведет к открытию диалога настройки параметров упаковки. После настройки необходимых параметров нажмите на кнопку ОК , после чего начнется упаковка.
Для удаления файла из архива выберите его и нажмите на клавишу Delete или щелкните правой кнопкой мыши на файле и выберите в появившемся контекстном меню пункт Удалить .
Обратите внимание, что при добавлении файла в архив TC4Shell добавляет копию этого файла, исходный файл не удаляется.
2. Извлечение файла из архива
Напомним, что пользователи создают архивные файлы по разным причинам. Скажем, архив необходим, если большие файлы необходимо скопировать на носители малой емкости. Вы также не обойдетесь без архива, если собираетесь передать информацию через модем. Также, создание архива позволяет освободить место на жестком диске.
Для создания архива выполните следующее:
- Все файлы, которые хотите поместить в архив, сохраните в одной папке.
- Запустите программу WinZip и щелкните по пиктограмме New(Новый) . После этого откроется окно диалога Newarchive (Новый архив) (рис. 5). В этом окне необходимо выбрать диск и папку для размещения архива и ввести имя архивного файла (в поле Имя архива). Проверьте установлена ли опция Adddialog(Добавить диалог), которая необходима для дальнейшего определения файлов, которые будут помещены в архив. Щелкните по кнопке ОК.
Рис. 5. Окно диалога New archive
- В следующем окне диалога Add (рис. 6) выберите файлы, которые должны быть упакованы в архив. Группы файлов можно помечать щелчком мыши при нажатой клавише Ctrl. Если в архив должны попасть все файлы папки, то в поле Имя файла оставьте маску «*.*». Нажмите кнопку Add (Добавить).
Рис. 6. Диалоговое окно добавления объектов,
которые будут помещены в архив
Возможны ситуации, когда необходимо удалить некоторые файлы из существующего архива. Для удаления файлов из уже существующего архива, выполните следующие действия:
- Откройте архив командой Open(Открыть).
- Выделите файлы, которые необходимо удалить.
- Нажмите клавишу Delete или Shift+D или выберите команду Actions→Delete(Действия → Удалить). Подтвердите удаление файлов в последующем окне диалога.
4. Создание многотомного архива
В пункте «Создание архива и удаление файлов» было рассмотрено создание архива, который помещается на одном носителе. Если же архив большой, то для копирования на дискеты необходимо разбить его на отдельные файлы. Эти файлы составляют так называемый многотомный архив.
Для создания многотомного архива выполните следующие действия:
- Откройте программу WinZip и нажмите кнопку New на панели инструментов окна WinZip.
- В окне диалога New archive выберите диск и папку для размещения архива, введите имя архивного файла и щелкните по кнопке ОК.
- В следующем окне диалога раскройте список Multiple Disk Spanning и пометьте позицию Automatic (Автоматическое разбиение).
Замечание. Многотомный архив в программе WinZip формируется сразу на гибких дисках, без предварительного создания на жестком диске. В программе WinRar предусмотрена более удобная возможность формирования многотомного архива на жестком диске.