c# - 有没有办法知道 byte[] 是否已被 gzipstream 压缩?

标签 c# c#-4.0 compression gzipstream

有没有办法知道 byte[] 是否已被 GzipStream .net 类压缩(或未压缩)?

编辑: 只想知道 byte[] 数组是否被压缩(因为我总是使用 GzipStream 来压缩和解压)

最佳答案

A GZipStreamDeflateStream有一个额外的标题和预告片。

格式在RFC 1952中指定.


.NET 4.0 GZipStream类将以下字节写入标题:

byte[] headerBytes = new byte[] { 0x1f, 0x8b, 8, 0, 0, 0, 0, 0, 4, 0 };
if (compressionLevel == 10)
{
    headerBytes[8] = 2;
}

预告片包含 CRC32校验和和未压缩数据的长度。

关于c# - 有没有办法知道 byte[] 是否已被 gzipstream 压缩?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4662821/

相关文章:

压缩数字: Reading Error

c# - 为什么 LINQ 中的 LastOrDefault(predicate) 比 FirstOrDefault(predicate) 更快

c# - 如何使用c#填充word模板

c# - 对对象进行多次提取会导致 Visual Studio 在编译时崩溃

c# - System.Nullable<System.TimeSpan >' does not contain a definition for ' TotalMinutes'

compression - 具有 gzip 压缩的 WebRTC 数据通道

c# - 如何将自定义 EndPointBehavior 添加到服务的 web.config 中?

c# 退出使用 lambda 的泛型 ForEach

c# - 如何将对象列表从一个实体复制到另一个实体

compression - 哪些压缩/存档格式支持文件间压缩?