打开由Windows中的C#DeflateStream创建的文件

问题描述 投票:1回答:1

我正在调试一些数据(JSON字符串),这些数据被发送到使用DeflateStream在C#中压缩的PHP API:

using (var writer = new StreamWriter(new MemoryStream())){
    ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
    request.Headers.Add("Content-Encoding", "gzip");
    request.Headers.Add(HttpRequestHeader.AcceptEncoding, "gzip, deflate");
    byteArray = Compress(new MemoryStream(Encoding.UTF8.GetBytes(incomingData)));
    Random random = new Random();
    int randomNumber = random.Next(0, 100);
    File.WriteAllBytes(@"compressed-"+ randomNumber + ".gz", byteArray);
}

这是Compress()的定义

private static byte[] Compress(Stream input)
        {
            using (var compressStream = new MemoryStream())
            using (var compressor = new DeflateStream(compressStream, CompressionMode.Compress))
            {
                input.CopyTo(compressor);
                compressor.Close();
                return compressStream.ToArray();
            }
        }

有没有办法打开这个在Windows中创建的文件?我试过7zip和Winrar无济于事。如果我使用GZipStream我可以打开它,但PHP与该格式不兼容。

c# compression
1个回答
1
投票

它不会写头信息和元数据,所以你不能像拉链文件那样“打开”...你总是可以简单地执行反向(即用DeflateStream解压缩)来获取原始数据......

© www.soinside.com 2019 - 2024. All rights reserved.