แตกไฟล์ใน C#

ใน โพสต์ ก่อนหน้านี้ คุณได้เรียนรู้วิธีต่างๆ ในการซิปไฟล์และโฟลเดอร์ลงในไฟล์เก็บถาวร ZIP โดยใช้ Aspose.ZIP for .NET ในโพสต์นี้ ฉันจะแสดงวิธีแตกหรือคลายซิปไฟล์ ZIP ใน C# นอกจากนี้ เราจะกล่าวถึงวิธีแยกไฟล์ ZIP ที่เข้ารหัสด้วยรหัสผ่านหรือ AES ใน C# บทความนี้แบ่งออกเป็นส่วนต่อไปนี้:

C# API เพื่อคลายซิปไฟล์ ZIP - ดาวน์โหลดฟรี

ก่อนที่เราจะเริ่ม ตรวจสอบให้แน่ใจว่าคุณได้ ดาวน์โหลด และอ้างอิง Aspose.ZIP for .NET หรือติดตั้งแพ็คเกจโดยใช้ NuGet Package Manager ในโครงการของคุณ

เปิดเครื่องรูดไฟล์ ZIP ใน C# .NET

กระบวนการแตกไฟล์ ZIP สามารถทำได้สองวิธี:

  • แตกไฟล์แต่ละไฟล์ใน ZIP แยกกัน
  • คลายซิปไฟล์ลงในโฟลเดอร์ที่ระบุ

ในวิธีแรก คุณสามารถเข้าถึงและแตกไฟล์แต่ละไฟล์ในไฟล์ ZIP ได้อย่างชัดเจน นอกจากนี้ คุณสามารถพิมพ์ความคืบหน้าของกระบวนการสกัด ในขณะที่วิธีที่สองเพียงแค่คลายซิปไฟล์ลงในโฟลเดอร์ที่ระบุ

แตกไฟล์แต่ละไฟล์เป็น ZIP ใน C#

ต่อไปนี้เป็นขั้นตอนในการเข้าถึงและแตกไฟล์และพิมพ์ความคืบหน้าในการแตกไฟล์ใน C#:

  • เปิดไฟล์ ZIP ในวัตถุ FileStream
  • สร้างและเริ่มต้นอินสแตนซ์ของ Archive ด้วยวัตถุ FileStream
  • เข้าถึงไฟล์ใน ZIP โดยใช้คอลเลกชัน Archive.Entries
  • ตั้งค่าตัวจัดการเหตุการณ์ ArchiveEntry.ExtractionProgressed เพื่อพิมพ์ความคืบหน้าในการดึงข้อมูล
  • แยก/คลายซิปไฟล์โดยใช้เมธอด ArchiveEntry.Extract(string)

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีแตกไฟล์ในไฟล์ ZIP โดยใช้ C#

// เปิดไฟล์ ZIP
using (FileStream zipFile = File.Open("compressed_files.zip", FileMode.Open))
{
	using (Archive archive = new Archive(zipFile, new ArchiveLoadOptions()))
	{
		// เข้าถึงแต่ละรายการในไฟล์ ZIP
		for (int i = 0; i < archive.Entries.Count; i++)
		{
			int percentReady = 0;
			// ความคืบหน้าในการแยกบันทึกไปยังคอนโซล
			archive.Entries[i].ExtractionProgressed += (s, e) =>
			{
				int percent = (int)((100 * e.ProceededBytes) / ((ArchiveEntry)s).UncompressedSize);
				if (percent > percentReady)
				{
					Console.WriteLine(string.Format("{0}% decompressed", percent));
					percentReady = percent;
				}
			};
			// แยกเนื้อหาของรายการไปยังดิสก์
			archive.Entries[i].Extract(archive.Entries[i].Name);
		}
	}
}

C# แตกไฟล์ ZIP ลงในโฟลเดอร์

ขั้นตอนต่อไปนี้ใช้เพื่อคลายซิปไฟล์ ZIP ลงในโฟลเดอร์เฉพาะใน C#

  • เปิดไฟล์ ZIP โดยใช้คลาส FileStream
  • สร้างอินสแตนซ์ของคลาส Archive และเริ่มต้นด้วยวัตถุ FileStream ของ ZIP
  • เปิดเครื่องรูดไฟล์โดยใช้เมธอด Archive.ExtractToDirectory(string)

ตัวอย่างโค้ด C# ต่อไปนี้แตกไฟล์ ZIP ลงในโฟลเดอร์

// เปิดไฟล์ ZIP
using (FileStream zipFile = File.Open("compressed_files.zip", FileMode.Open))
{
	using (var archive = new Archive(zipFile))
	{
		// เปิดเครื่องรูดไฟล์ไปยังโฟลเดอร์
		archive.ExtractToDirectory("Unzipped Files");
	}
}

C# แยกไฟล์ ZIP ที่ป้องกันด้วยรหัสผ่าน

คุณยังสามารถแตกไฟล์ ZIP ที่ป้องกันด้วยรหัสผ่านโดยใช้ Aspose.ZIP for .NET สำหรับสิ่งนี้ คุณต้องระบุรหัสผ่านโดยใช้คลาส ArchiveLoadOptions ที่จะถูกส่งผ่านเป็นพารามิเตอร์ที่สองไปยังตัวสร้างของ Archive

ต่อไปนี้คือโค้ดตัวอย่างในการแตกไฟล์ ZIP ที่ป้องกันด้วยรหัสผ่าน

// เปิดไฟล์ ZIP
using (FileStream zipFile = File.Open("compressed_files.zip", FileMode.Open))
{
	// ถอดรหัสโดยใช้รหัสผ่าน
	using (var archive = new Archive(zipFile, new ArchiveLoadOptions() { DecryptionPassword = "p@s$" }))
	{
    		// แยกไฟล์ไปยังโฟลเดอร์
		archive.ExtractToDirectory("Unzipped Files");
	}
}

C# แยกไฟล์ ZIP ที่เข้ารหัส AES

ไฟล์ ZIP สามารถเข้ารหัสด้วยการเข้ารหัส AES Aspose.ZIP for .NET รองรับการเข้ารหัสไฟล์เก็บถาวรด้วยวิธีการเข้ารหัส AES128, AES192 และ AES256 การคลายซิปไฟล์ ZIP ที่เข้ารหัส AES นั้นคล้ายกับการคลายซิปไฟล์ ZIP ที่ป้องกันด้วยรหัสผ่าน เพียงระบุรหัสผ่านการถอดรหัสโดยใช้คลาส ArchiveLoadOptions และส่วนที่เหลือจะได้รับการดูแลโดย API

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีคลายซิปไฟล์ ZIP ที่เข้ารหัส AES ใน C#

// เปิดไฟล์ ZIP
using (FileStream zipFile = File.Open("encrypted.zip", FileMode.Open))
{
  	// ถอดรหัสและแยกไฟล์ไปยังโฟลเดอร์
	new Archive(zipFile, new ArchiveLoadOptions() { DecryptionPassword = "p@s$" }).ExtractToDirectory("decrypted");
}

C# Unzip Library - รับใบอนุญาต API ฟรี

คุณสามารถใช้ Aspose.ZIP for .NET ได้โดยไม่มีข้อจำกัดในการประเมินโดยรับ ใบอนุญาตชั่วคราวฟรี

บทสรุป

ในบทความนี้ คุณได้เรียนรู้วิธีคลายซิปไฟล์ ZIP โดยใช้ C# นอกจากนี้ คุณได้เห็นวิธีคลายซิปไฟล์ในไฟล์ ZIP ที่ป้องกันด้วยรหัสผ่านใน C# .NET ตัวอย่างโค้ดยังแสดงวิธีแตกไฟล์ในไฟล์ ZIP ที่เข้ารหัสใน C# คุณสามารถสำรวจเพิ่มเติมเกี่ยวกับ Aspose.ZIP for .NET โดยใช้ เอกสารประกอบ

บทความที่เกี่ยวข้อง