在 C# 中使用 GZIP 格式压缩和解压缩文件
csharpprogrammingserver side programming更新于 2025/9/11 17:46:00
要使用 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;
}
}

