ZIP в TGZ C#

В этой записи блога мы рассмотрим, как преобразовать файлы ZIP в формат TGZ(tar.gz) с помощью C#. Преобразование из ZIP в TGZ — это обычная задача, особенно при работе со сжатыми файлами для Unix-подобных систем. Следующий урок включает пошаговое объяснение и необходимый код для начала работы.

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

Вам может потребоваться конвертировать формат ZIP в формат TGZ по разным причинам, например:

  • Совместимость между платформами: файлы TGZ обычно используются в системах на базе Unix (Linux, macOS), а файлы ZIP популярны в Windows. Преобразование ZIP в TGZ упрощает обработку сжатых файлов в разных средах.

  • Преимущества сжатия: файлы TGZ обычно обеспечивают лучшую степень сжатия по сравнению с ZIP, что экономит место на диске и сокращает время передачи.

  • Автоматизация задач: в C# автоматизация преобразования форматов файлов может сэкономить время и усилия, особенно в приложениях, работающих с большими объемами данных.

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

Вы можете преобразовать ZIP в TGZ, установив Conholdate.Total for .NET и выполнив следующую команду NuGet в среде Visual Studio IDE:

PM> NuGet\Install-Package Conholdate.Total

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

Следующие шаги показывают, как преобразовать ZIP в TGZ в C#:

  • Загрузка ZIP-файла: Класс Archive загружает исходный ZIP-файл, содержащий записи, которые вы хотите преобразовать в формат TGZ.

  • Создание TarArchive: Мы создаем объект TarArchive, чтобы начать подготовку содержимого для файла TGZ.

  • Обработка записей: каждая запись в ZIP-файле перебирается. Если это не каталог, мы извлекаем его данные в MemoryStream.

  • Добавление записей в TarArchive: для каждой допустимой записи используется метод CreateEntry для добавления файла в tarball вместе с данными, хранящимися в памяти.

  • Сохранение в формате TGZ: метод SaveGzipped вызывается для сжатия и сохранения tarball в виде файла .tar.gz.

Следующий фрагмент кода демонстрирует преобразование ZIP в TGZ на языке C#:

using (Archive source = new Archive("source.zip"))
{
    using (Aspose.Zip.Tar.TarArchive tar = new Aspose.Zip.Tar.TarArchive())
    {
        foreach (ArchiveEntry entry in source.Entries)
        {
            if (!entry.IsDirectory)
            {
                MemoryStream mem = new MemoryStream();
                entry.Open().CopyTo(mem);
                tar.CreateEntry(entry.Name, mem);
            }
        }

        tar.SaveGzipped("result.tar.gz");
    }
}

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

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

Заключение

Конвертация ZIP в TGZ в C# — это простой процесс обработки сжатых архивов. Независимо от того, имеете ли вы дело с кроссплатформенным обменом файлами или оптимизацией размеров файлов, этот процесс конвертации очень полезен. Следуя приведенному примеру кода, вы можете автоматизировать конвертацию ZIP в TGZ в своих приложениях .NET, обеспечивая совместимость и эффективность управления сжатыми файлами. Если у вас есть какие-либо вопросы, напишите нам на форум.

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

Поддерживается ли формат TGZ в Windows?

Да, хотя это более распространено в системах на базе Unix, файлы TGZ также можно извлекать и создавать в Windows.

Могу ли я включать каталоги в архив TGZ?

Да, код можно изменить, включив в него каталоги, удалив проверку !entry.IsDirectory и обработав каталоги соответствующим образом.

Можно ли автоматизировать конвертацию ZIP в TGZ?

Да, предоставленный код можно интегрировать в более крупные приложения C#, что позволяет выполнять автоматизированные преобразования в пакетном режиме или в запланированных задачах.

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