Computer >> Máy Tính >  >> Lập trình >> C#

Nén và giải nén tệp bằng Định dạng GZIP trong C #

Để nén và giải nén tệp bằng Định dạng GZIP, hãy sử dụng lớp GZipStream.

Nén

Để nén tệp, hãy sử dụng lớp GZipStream với lớp FileStream. Đặt các thông số sau.

Tệp sẽ được nén và tên của tệp zip đầu ra.

Ở đây, outputFile là tệp đầu ra và tệp được đọc vào FileStream.

Ví dụ

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);
   }
}

Giải nén

Để giải nén tệp, hãy sử dụng cùng lớp GZipStream. Đặt các tham số sau:tệp nguồn và tên của tệp đầu ra.

Từ tệp zip nguồn, hãy mở GZipStream.

using (var zip = new GZipStream(inStream, CompressionMode.Decompress, true))

Để giải nén, hãy sử dụng một vòng lặp và đọc miễn là bạn có dữ liệu trong luồng. Ghi nó vào luồng đầu ra và một tệp sẽ tạo ra. Tệp là tệp đã được giải nén của chúng tôi.

Ví dụ

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;
   }
}