หากต้องการบีบอัดและขยายขนาดไฟล์โดยใช้รูปแบบ GZIP ให้ใช้คลาส GZipStream
บีบอัด
ในการซิปไฟล์ ให้ใช้คลาส 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;
}
}