Під час роботи з архівами у ваших програмах .NET може знадобитися об’єднати кілька файлів ZIP або TAR. Наприклад, ви можете видобути файли та папки з кількох архівів і помістити їх в один архів. Щоб цього досягти, у цій статті описано, як об’єднати кілька файлів ZIP або TAR у C#. Ми розглянемо об’єднання ZIP у ZIP, TAR у TAR, ZIP у TAR і TAR у ZIP.
- C# API для об’єднання файлів ZIP і TAR
- Об’єднання кількох ZIP-файлів у C#
- Об’єднання кількох файлів TAR у C#
- Поєднання ZIP з TAR у C#
- Поєднання TAR із ZIP у C#
C# .NET API для об’єднання файлів ZIP і TAR
Щоб об’єднати декілька архівів ZIP і TAR, ми використаємо Aspose.ZIP for .NET. Це багатофункціональний .NET API, який дозволяє створювати та маніпулювати різними популярними форматами архівів. Ви можете завантажити DLL API або встановити його безпосередньо за допомогою NuGet.
PM> Install-Package Aspose.Zip
Об’єднання кількох ZIP-файлів у C#
Давайте почнемо нашу подорож із об’єднання архівів із форматом ZIP. Ми візьмемо два ZIP-архіви та зберемо їхні записи в один ZIP-файл. Нижче наведено кроки для об’єднання кількох ZIP-файлів у C#.
- Завантажте перший файл ZIP за допомогою класу Архів.
- Так само завантажте другий ZIP-файл за допомогою класу Archive.
- Тепер перегляньте записи першого ZIP за допомогою колекції Archive.Entries.
- Скопіюйте кожен ArchiveEntry в об’єкт MemoryStream за допомогою методу ArchiveEntry.Open().CopyTo(MemoryStream).
- Додайте запис до другого ZIP за допомогою методу Archive.CreateEntry(string, MemoryStream).
- Збережіть об’єднаний ZIP як окремий файл за допомогою методу Archive.Save(string).
У наведеному нижче прикладі коду показано, як об’єднати два файли ZIP у C#.
// Завантажте вихідний ZIP-архів
using (Archive sourceArchive = new Archive("Archives/SourceArchive.zip"))
{
// Завантажте цільовий архів ZIP
using (Archive destArchive = new Archive("Archives/DestinationArchive.zip"))
{
// Переглядайте записи
foreach (ArchiveEntry entry in sourceArchive.Entries)
{
// Перевірте, чи запис не є каталогом. Записи, які є каталогами, пропускаються, але їхні файли додаються з урахуванням відносних шляхів.
if (!entry.IsDirectory)
{
// Завантажити запис у потік пам'яті
MemoryStream mem = new MemoryStream();
entry.Open().CopyTo(mem);
// Додайте запис до цільового ZIP
destArchive.CreateEntry(entry.Name, mem);
}
}
// Збережіть об'єднаний архів окремо
destArchive.Save("Archives/merged-archive.zip");
}
}
Об’єднання кількох файлів TAR у C#
Давайте тепер перевіримо, як об’єднати декілька архівів TAR у C#. Нижче наведено кроки для досягнення цього.
- Завантажте перший файл TAR за допомогою класу TarArchive.
- Так само завантажте другий файл TAR за допомогою класу TarArchive.
- Тепер перегляньте записи першого TAR за допомогою колекції TarArchive.Entries.
- Скопіюйте кожен TarEntry в об’єкт MemoryStream за допомогою методу TarEntry.Open().CopyTo(MemoryStream).
- Додайте запис до другого TAR за допомогою методу TarArchive.CreateEntry(string, MemoryStream).
- Збережіть об’єднаний TAR за допомогою методу TarArchive.Save(string).
У наступному прикладі коду показано, як об’єднати кілька файлів TAR у C#.
// Завантажте вихідний архів TAR
using (TarArchive sourceArchive = new TarArchive("Archives/SourceArchive.tar"))
{
// Завантажте цільовий архів TAR
using (TarArchive destArchive = new TarArchive("Archives/DestinationArchive.tar"))
{
// Переглядайте записи
foreach (TarEntry entry in sourceArchive.Entries)
{
// Перевірте, чи запис не є каталогом. Записи, які є каталогами, пропускаються, але їхні файли додаються з урахуванням відносних шляхів.
if (!entry.IsDirectory)
{
// Завантажити запис у потік пам'яті
MemoryStream mem = new MemoryStream();
entry.Open().CopyTo(mem);
// Додайте запис до цільового TAR
destArchive.CreateEntry(entry.Name, mem);
}
}
// Збережіть об'єднаний архів окремо
destArchive.Save("Archives/merged-archive.tar");
}
}
Об’єднання ZIP у TAR у C#
У цьому розділі ми побачимо, як об’єднати файл ZIP в архів TAR на C#. Нижче наведено кроки для виконання цієї операції.
- Завантажте ZIP-файл за допомогою класу Архів.
- Завантажте файл TAR за допомогою класу TarArchive.
- Тепер перегляньте записи ZIP за допомогою колекції Archive.Entries.
- Скопіюйте кожен ArchiveEntry в об’єкт MemoryStream за допомогою методу ArchiveEntry.Open().CopyTo(MemoryStream).
- Додайте запис до TAR за допомогою методу TarArchive.CreateEntry(string, MemoryStream).
- Збережіть файл TAR за допомогою методу TarArchive.Save(string).
У наведеному нижче прикладі коду показано, як об’єднати архів ZIP у TAR.
// Завантажте вихідний ZIP-архів
using (Archive zipArchive = new Archive("Archives/SourceArchive.zip"))
{
// Завантажте цільовий архів TAR
using (TarArchive tarArchive = new TarArchive("Archives/DestinationArchive.tar"))
{
// Переглядайте записи
foreach (ArchiveEntry entry in zipArchive.Entries)
{
// Перевірте, чи запис не є каталогом. Записи, які є каталогами, пропускаються, але їхні файли додаються з урахуванням відносних шляхів.
if (!entry.IsDirectory)
{
// Завантажити запис у потік пам'яті
MemoryStream mem = new MemoryStream();
entry.Open().CopyTo(mem);
// Додайте запис до цільового TAR
tarArchive.CreateEntry(entry.Name, mem);
}
}
// Збережіть об'єднаний архів окремо
tarArchive.Save("Archives/merged-archive.tar");
}
}
Поєднання TAR із ZIP у C#
Подібно до попереднього прикладу, ви можете об’єднати файл TAR у ZIP. У наведеному нижче прикладі коду показано, як видобувати файли з TAR і об’єднувати їх у ZIP.
// Завантажити архів TAR
using (TarArchive tarArchive = new TarArchive("Archives/SourceArchive.tar"))
{
// Завантажити ZIP-архів
using (Archive zipArchive = new Archive("Archives/DestinationArchive.zip"))
{
// Переглядайте записи
foreach (TarEntry entry in tarArchive.Entries)
{
// Перевірте, чи запис не є каталогом. Записи, які є каталогами, пропускаються, але їхні файли додаються з урахуванням відносних шляхів.
if (!entry.IsDirectory)
{
// Завантажити запис у потік пам'яті
MemoryStream mem = new MemoryStream();
entry.Open().CopyTo(mem);
// Додати запис до ZIP
zipArchive.CreateEntry(entry.Name, mem);
}
}
// Збережіть об'єднаний архів окремо
zipArchive.Save("Archives/merged-archive.zip");
}
}
Отримайте безкоштовну ліцензію API
Ви можете використовувати Aspose.ZIP for .NET без оціночних обмежень, отримавши безкоштовну тимчасову ліцензію.
Висновок
У цій статті ви дізналися, як програмно об’єднати декілька архівів ZIP або TAR у C#. Зокрема, ми розглянули, як динамічно об’єднувати файли ZIP, файли TAR, ZIP у TAR і TAR у ZIP. Щоб дізнатися більше про Aspose.ZIP for .NET, ви можете відвідати документацію. Також ви можете опублікувати свої запити на нашому форумі.