Копия между двумя потоками в .NET 2.0

Я использовал следующий код для сжимания данных в .NET 4.0:

public static byte[] CompressData(byte[] data_toCompress)
{

    using (MemoryStream outFile = new MemoryStream())
    {
        using (MemoryStream inFile = new MemoryStream(data_toCompress))
        using (GZipStream Compress = new GZipStream(outFile, CompressionMode.Compress))
        {
            inFile.CopyTo(Compress);

        }
        return outFile.ToArray();
    }

}

Однако в способе .NET 2.0 steam.copyto не доступен. Итак, я попытался сделать замену:

public static byte[] CompressData(byte[] data_toCompress)
{

    using (MemoryStream outFile = new MemoryStream())
    {
        using (MemoryStream inFile = new MemoryStream(data_toCompress))
        using (GZipStream Compress = new GZipStream(outFile, CompressionMode.Compress))
        {
            //inFile.CopyTo(Compress);
            Compress.Write(inFile.GetBuffer(), (int)inFile.Position, (int)(inFile.Length - inFile.Position));
        }
        return outFile.ToArray();
    }

}

сжатие не удается, хотя при использовании вышеуказанной попытки - я получаю ошибку:

внутренний буфер MemorStream не может быть доступен.

Может кто-нибудь предложить любую помощь по этому вопросу? Я действительно не уверен, что еще здесь делать.

Спасибо, Evan

5
задан 14 September 2011 в 22:05
поделиться