ใช้ System.IO.Compression Namespace ใน C# เพื่อบีบอัดและขยายขนาดไฟล์ใน C#
บีบอัด
ในการซิปไฟล์ ให้ใช้คลาส GZipStream กับคลาส FileStream ตั้งค่าพารามิเตอร์ต่อไปนี้:ไฟล์ที่จะบีบอัดและชื่อของไฟล์ zip ที่ส่งออก
ที่นี่ outputFile คือไฟล์เอาท์พุตและไฟล์จะถูกอ่านใน FileStream
ตัวอย่าง
using(var compress = new GZipStream(outputFile, CompressionMode.Compress, false)) { byte[] b = new byte[inFile.Length]; int read = inFile.Read(b, 0, b.Length); while (read > 0) { compress.Write(b, 0, read); read = inFile.Read(b, 0, b.Length); } }
คลายการบีบอัด
หากต้องการขยายขนาดไฟล์ ให้ใช้คลาส GZipStream เดียวกัน ตั้งค่าพารามิเตอร์ต่อไปนี้:ไฟล์ต้นฉบับและชื่อของไฟล์เอาต์พุต
จากไฟล์ zip ต้นทาง ให้เปิด GZipStream
using (var zip = new GZipStream(inStream, CompressionMode.Decompress, true))
ในการคลายการบีบอัด ให้ใช้ลูปและอ่านตราบใดที่คุณมีข้อมูลในสตรีม เขียนไปยังกระแสข้อมูลขาออกและสร้างไฟล์ ไฟล์นี้เป็นไฟล์ที่แตกไฟล์แล้ว
ตัวอย่าง
using(var zip = new GZipStream(inputStream, CompressionMode.Decompress, true)) { byte[] b = new byte[inputStream.Length]; while (true) { int count = zip.Read(b, 0, b.Length); if (count != 0) outputStream.Write(b, 0, count); if (count != b.Length) break; } }