
Вступ
Керування ZIP-файлами може бути складним, особливо коли вони містять вкладені архіви. Цей посібник проведе вас через процес плоского ZIP-структур шляхом вилучення всіх внутрішніх ZIP-архівів в один архів за допомогою Aspose.ZIP для .NET.
Чому слід створювати плоский ZIP?
Створення плоского ZIP-архіву має кілька переваг:
- Спрощує управління ZIP-файлами: Зменшує складність при обробці кількох файлів.
- Вилучає всі вкладені ZIP вмісти в один архів: Консолідує файли для зручнішого доступу.
- Зменшує надмірні структури папок: Спрощує організацію файлів.
Зміст
- Налаштування обробки ZIP-архівів у C#
- Кроки для створення плоского ZIP-архіву
- Збереження плоского ZIP-файлу
- Пакетна обробка кількох ZIP-архівів
- Отримання безкоштовної ліцензії API
- Висновок та додаткові ресурси
1. Налаштування обробки ZIP-архівів у C#
Щоб ефективно обробляти вкладені ZIP-архіви, ми будемо використовувати Aspose.ZIP для .NET. Ця потужна бібліотека надає:
- Автоматизоване вилучення та повторне стиснення ZIP.
- Підтримка кількох форматів архівів: ZIP, TAR, GZip та інших.
- Ефективна обробка великих архівів.
Встановлення
Ви можете легко встановити бібліотеку через NuGet:
PM> Install-Package Aspose.Zip
Альтернативно, ви можете завантажити DLL з Сторінки завантажень Aspose.
2. Кроки для створення плоского ZIP-архіву
Розгляньте наступну вкладену 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-файлів:
// Завантажте батьківський ZIP-файл
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-файлів, забезпечуючи плавний робочий процес.
3. Збереження плоского ZIP-файлу
Після того, як ви вилучили вмісти вкладених ZIP, збережіть плоский ZIP-файл за допомогою наступного рядка коду:
parentZip.Save("flattened.zip");
Це забезпечує наявність єдиного ZIP-архіву без вкладених папок, що значно спрощує управління файлами.
4. Пакетна обробка кількох 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, економлячи ваш час і зусилля.
5. Отримання безкоштовної ліцензії API
Щоб розблокувати всі можливості Aspose.ZIP, ви можете запитати безкоштовну тимчасову ліцензію.
Для отримання всебічної документації відвідайте Посібник Aspose.ZIP. Якщо у вас є запитання, не соромтеся спілкуватися з громадою на форумі Aspose.
6. Висновок та додаткові ресурси
Резюме
У цьому посібнику ми розглянули:
✅ Як сплющити ZIP-файли в C#
✅ Вилучення вкладених ZIP-архівів
✅ Збереження фінального ZIP-архіву
✅ Обробка кількох ZIP-файлів одночасно
З Aspose.ZIP для .NET ви можете ефективно вилучати та керувати ZIP-архівами у ваших додатках. Почніть оптимізувати свої робочі процеси обробки ZIP сьогодні!