Я использовал следующий код для сжимания данных в .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