ZIP в 7z C#

В этой записи блога мы проведем вас через процесс преобразования архива ZIP в формат 7z с использованием C#. Формат 7z известен своей высокой степенью сжатия и широко используется для уменьшения размера файла, что делает его идеальным для эффективного хранения и передачи. Мы продемонстрируем, как реализовать преобразование, используя пошаговый подход.

Зачем конвертировать ZIP в 7z?

Существует несколько причин конвертировать файлы ZIP в формат 7z:

  • Уменьшение размера файлов: формат 7z обеспечивает лучшее сжатие по сравнению с ZIP.

  • Повышение производительности: меньшие размеры файлов приводят к более быстрой загрузке, скачиванию и передаче данных.

  • Более высокая степень сжатия: формат 7z сжимает файлы более эффективно, уменьшая размер файла для оптимизации хранения.

Конвертер архивов ZIP в 7z — конфигурация API C#

Для преобразования архивов ZIP в формат 7z необходимо установить Conholdate.Total for .NET с помощью следующей команды установки NuGet в среде Microsoft Visual Studio IDE:

PM> NuGet\Install-Package Conholdate.Total

Конвертировать ZIP в 7z на C#

Чтобы преобразовать ZIP в 7z в C#, выполните следующие действия:

  • Архив: представляет собой ZIP-файл, который вы хотите преобразовать. Класс Archive используется для открытия и чтения ZIP-файла.

  • SevenZipArchive: этот класс используется для создания и сохранения архива 7z.

  • SevenZipEntrySettings: Задает параметры сжатия для формата 7z. В этом случае мы используем алгоритм сжатия LZMA2 для максимальной эффективности сжатия.

  • MemoryStream: данные файла копируются в память с помощью потока, и каждая запись из ZIP-файла добавляется в новый архив 7z.

Пример кода ниже демонстрирует, как преобразовать ZIP в 7z на языке C#:

using (Archive source = new Archive("source.zip"))
{
    using (var archive = new Aspose.Zip.SevenZip.SevenZipArchive(new SevenZipEntrySettings(new SevenZipLZMA2CompressionSettings())))
    {
        foreach (ArchiveEntry entry in source.Entries)
        {
            if (!entry.IsDirectory)
            {
                MemoryStream mem = new MemoryStream();
                entry.Open().CopyTo(mem);
                mem.Seek(0, SeekOrigin.Begin);
                archive.CreateEntry(entry.Name, mem);
            }
        }
        archive.Save("result.7z");
    }
}

Бесплатная ознакомительная лицензия

Вы можете получить бесплатную временную лицензию, чтобы оценить различные преобразования архивов или манипуляции с ними на своей стороне.

Заключение

Выполнив шаги, описанные выше, вы можете легко преобразовать ZIP-файл в формат 7z в C#. Более высокая эффективность сжатия формата 7z делает его отличным выбором для уменьшения размеров файлов, что помогает повысить производительность при работе с большими архивами. Если вам нужно обсудить какие-либо неясности, свяжитесь с нами на форум.

Часто задаваемые вопросы

Можно ли защитить паролем архив 7z?

Да, формат 7z поддерживает расширенное шифрование, позволяя защитить архив паролем.

Можно ли конвертировать несколько ZIP-файлов в 7z за одну операцию?

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

Нужно ли мне устанавливать программное обеспечение 7-Zip на мой компьютер?

Нет, Conholdate.Total для .NET включает в себя все необходимые компоненты для работы с 7z без дополнительного программного обеспечения.

Смотрите также