В этой записи блога мы рассмотрим, как преобразовать файлы 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#, что позволяет выполнять автоматизированные преобразования в пакетном режиме или в запланированных задачах.