ขณะทำงานกับไฟล์เก็บถาวรจากภายในแอปพลิเคชัน .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 ไฟล์แรกโดยใช้คลาส Archive
- ในทำนองเดียวกัน โหลดไฟล์ 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 โดยใช้คลาส Archive
- โหลดไฟล์ TAR โดยใช้คลาส TarArchive
- ตอนนี้ วนซ้ำรายการของ ZIP โดยใช้คอลเลกชัน Archive.Entries
- คัดลอกแต่ละ ArchiveEntry ไปยังวัตถุ MemoryStream โดยใช้เมธอด ArchiveEntry.Open().CopyTo(MemoryStream)
- เพิ่มรายการไปยัง TAR โดยใช้ TarArchive.CreateEntry(string, MemoryStream) method.
- บันทึกไฟล์ 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 คุณสามารถไปที่ เอกสารประกอบ นอกจากนี้ คุณสามารถโพสต์คำถามของคุณไปที่ ฟอรัม ของเรา