在C#中使用GZIP格式压缩和解压缩文件
要使用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; } }