Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

การบีบอัดและขยายขนาดไฟล์โดยใช้รูปแบบ GZIP ใน C #


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