Открыть файл, созданный C # DeflateStream в Windows - PullRequest
1 голос
/ 11 апреля 2019

Я отлаживаю некоторые данные (строка JSON), которые отправляются в PHP API, который был сжат в C # с использованием DeflateStream:

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 не совместим с этим форматом.

1 Ответ

1 голос
/ 11 апреля 2019

Он не записывает информацию заголовка и метаданные, поэтому вы не можете «открыть» его как zip-файл ... Вы всегда можете просто выполнить обратное (т.е. распаковать с помощью DeflateStream), чтобы получить исходные данные ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...