Compresser et décompresser un Flux de Compression.DeflateStream

Je suis en train de compresser et de décompresser un Flux de données à l'aide de La Compression.DeflateStream. La compression semble fonctionner correctement depuis le code ci-dessous compresse mon Flux de 110 octets de long tableau. Cependant, la lecture du Flux décompressé résultats dans une chaîne vide.

class Program
{
    static void Main(string[] args)
    {
        //Compress a random string value
        string value = Path.GetRandomFileName();
        byte[] compressedBytes;

        using (var writer = new StreamWriter(new MemoryStream()))
        {
            writer.Write(value);
            writer.Flush();
            writer.BaseStream.Position = 0;

            compressedBytes = Compress(writer.BaseStream);
        }

        //Decompress compressed bytes
        Stream decompressedStream = Decompress(compressedBytes);
        //here already applies: decompressedStream.Length == 0

        using (var reader = new StreamReader(decompressedStream))
        {
            string decompressedValue = reader.ReadToEnd();

            if (value == decompressedValue)
                Console.WriteLine("Success");
            else
                Console.WriteLine("Failed");
        }
    }

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

    private static Stream Decompress(byte[] input)
    {
        var output = new MemoryStream();

        using (var compressStream = new MemoryStream(input))
        using (var decompressor = new DeflateStream(compressStream, CompressionMode.Decompress))
            decompressor.CopyTo(output);

        output.Position = 0;
        return output;
    }
}

Quelqu'un peut m'aider sur ce coup?
Merci beaucoup.

OriginalL'auteur greijner | 2012-05-15