
Введение
Управление ZIP-файлами может быть сложной, особенно когда они содержат nested архивы. Этот руководство пройдет через процесс флатенции ZIP-структур путем извлечения всех внутренних ZIP-файлов в единый архив с помощью Aspose.ZIP для .NET.
Зачем создавать плоский ZIP?
Создание плоского архива ZIP предлагает несколько преимуществ:
- Упрощает управление файлами ZIP: уменьшает сложность при обработке нескольких файлов.
- Экстрактирует все содержимое ZIP в один архив: консолидирует файлы для легкого доступа.
- Снижает структуры папки, которые разрушаются: потоковые линии организации файлов.
Таблица контента
- Обновление обработки архивов ZIP в C#
- Шаги для создания плоского архива ZIP
- Сохранение Flattened ZIP File
- Бач обработки Multiple ZIP Archives
- Получить бесплатную лицензию API
- Заключение и дополнительные ресурсы
1.Настройка обработки архивов ZIP в C#
Чтобы эффективно обрабатывать nested ZIP архивы, мы будем использовать [Aspose.ZIP для .NET](https://products.aspose.net/zip:
- Автоматическая экстракция ZIP и повторная компрессия.
- Поддержка для нескольких файловых форматов: ZIP, TAR, GZip и многое другое.
- Эффективная обработка больших архивов.
Инсталляция
Вы можете легко установить библиотеку через NuGet:
PM> Install-Package Aspose.Zip
В качестве альтернативы, вы можете скачать DLL из Скачать Aspose Downloads.
Шаги для создания Flat ZIP Archive
Рассмотрим следующую структуру nested ZIP:
parent.zip
├ first.txt
├ inner.zip
│ ├ file1.exe
│ └ data.bin
└ picture.gif
После флатенции все внутренние ZIP-контенты будут консолидированы в материнский ZIP:
flattened.zip
├ first.txt
├ picture.gif
├ file1.exe
└ data.bin
Код Пример
Вот как вы можете автоматизировать извлечение гнездовых ZIP-файлов:
// Load the parent ZIP file
using (Archive parentZip = new Archive("parent.zip"))
{
List<ArchiveEntry> toDelete = new List<ArchiveEntry>();
List<string> newEntryNames = new List<string>();
List<MemoryStream> newStreams = new List<MemoryStream>();
foreach (ArchiveEntry entry in parentZip.Entries)
{
if (entry.Name.EndsWith(".zip", StringComparison.OrdinalIgnoreCase))
{
toDelete.Add(entry);
using (MemoryStream zipStream = new MemoryStream())
{
entry.Open().CopyTo(zipStream);
zipStream.Position = 0;
using (Archive innerZip = new Archive(zipStream))
{
foreach (ArchiveEntry innerEntry in innerZip.Entries)
{
using (MemoryStream entryStream = new MemoryStream())
{
innerEntry.Open().CopyTo(entryStream);
newEntryNames.Add(innerEntry.Name);
newStreams.Add(entryStream);
}
}
}
}
}
}
foreach (var entry in toDelete)
parentZip.DeleteEntry(entry);
for (int i = 0; i < newEntryNames.Count; i++)
parentZip.CreateEntry(newEntryNames[i], newStreams[i]);
parentZip.Save("flattened.zip");
}
Этот метод эффективно автоматизирует извлечение файлов ZIP, обеспечивая гладкий рабочий поток с функциональностью C# Archive.
Сохранение Flattened ZIP File
После того, как вы сделали выделенный ZIP-контент, сохраните флатентный ZIP-файл, используя следующую строку кода:
parentZip.Save("flattened.zip");
Это гарантирует, что у вас есть один ZIP-архив без гнездовых папок, делая управление файлами намного проще с помощью C# Zip Compression методов.
4.Batch Processing Multiple ZIP Архивы
Если вам нужно плавные несколько ZIP-архив, расположенных в конкретной папке, вы можете использовать следующий код:
string[] files = Directory.GetFiles("zip_folder", "*.zip");
foreach (string file in files)
{
using (Archive archive = new Archive(file))
{
archive.ExtractToDirectory("output_folder");
}
}
Этот метод позволяет автоматизировать массу ZIP обработки, сэкономить время и усилия при эффективной обработке C# Zip файлов.
Получение бесплатной лицензии API
Чтобы отключить полные функции Aspose.ZIP, вы можете запросить бесплатную временную лицензию.
Для подробной документации, посетите Aspose.ZIP Guide ** . Если у вас есть какие-либо вопросы, будьте свободны связаться с сообществом на ** Forum Aspose.
Заключение и дополнительные ресурсы
Совокупность
В этом руководстве мы охватываем:
- Как флатентировать ZIP файлы в C#
- Извлечение нестированных ZIP архивов
- Спаси финальный архив ZIP
- Обработка нескольких ZIP файлов одновременно
С помощью Aspose.ZIP для .NET вы можете эффективно экстрактировать и управлять архивами ZIP в ваших приложениях!
Дополнительные ресурсы
Для разработчиков, стремящихся улучшить свое понимание, рассмотрим эти темы:
- C# Create Zip Archive: Исследуйте различные способы создания файлов ZIP в ваших приложениях C.
- Создание файла ZIP C# .NET Core: сосредоточенный на .NET Core, выучите лучшие практики для создания файлов ЗИП.
- C# Экстракт файла из ZIP: шаг за шагом инструкция по экстракции конкретных файлов из архивов Zip.
- C# Decompress ZIP: Подробный руководство по декомпрессированию файлов ЗИП с помощью C#.
- Как Zip файлы в .NET с C#: Полный проход по zipping файлам с использованием .NET и c#.
- C# ZipArchive Extract to Directory: Узнайте, как использовать ЗипАрхив для эффективного извлечения файлов.
- C# Zipping Files: Исследуйте способы zipping файлов в C# для улучшения производительности и удобства.
- .NET Core Create Zip File: Подробный взгляд на создание ZIP файлов с помощью .NET core и C#.
- C# Zip: Узнайте о том, как эффективно управлять ZIP файлами в C#.
- C# Zip Example: Обзор практических примеров zipping файлов в C# для упрощения процесса разработки.
- .NET Core Zip: лучшие практики для работы с ZIP-файлами в приложениях .NET Core.
- C# Open ZIP: Понимайте, как эффективно открывать и читать файлы ЗИП.
- C# Читать файлы из ZIP: Техники для чтения конкретных файлов, хранящихся в архивах Zip.
- C# Zip Lists: Узнайте, как беспрепятственно зашифровать списки файлов в ваших приложениях.
- C# Zipping Файлы: Подробнее о методах для zipping файлов.
- .NET Core Zip: Введение в .NET core ZIP файловое управление.
- C# Archive: Научитесь использовать класс Архив для всесторонней обработки ZIP.