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

Nén và giải nén tệp trong C #

Sử dụng Không gian tên nén System.IO.Compression trong C # để nén và giải nén các tệp trong C #.

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 đượ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. Xem các thông 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;
   }
}