لنفرض انك تود بإجراء عملية الضعط لمصفوفة من البايتات فكيف يمكننا القيام بذلك، دعنا ندع الحديث عن ذلك للتابع التالي:
public static byte[] Compress(byte[] document)
{
MemoryStream outStream;
GZipStream zip;
outStream = new MemoryStream();
zip = new GZipStream(outStream, CompressionMode.Compress);
zip.Write(document, 0, document.Length);
zip.Close();
return outStream.ToArray();
}أما عملية فك الضغط فستكون على النحو التالي:
public static byte[] Decompress(byte[] document)
{
MemoryStream outStream;
GZipStream zip;
List<byte> decompress;
int value;
outStream = new MemoryStream(document);
zip = new GZipStream(outStream, CompressionMode.Decompress);
decompress = new List<byte>();
value = zip.ReadByte();
while (value != -1)
{
decompress.Add((byte)value);
value = zip.ReadByte();
}
zip.Close();
return decompress.ToArray();
}طبعا الصف GZipStream ليس فقط من اجل ضغط مصفوفة بايتات وانما ايضا يسمح لك بضغط ملف.
طبعا حيث نستطيع قراءة الملف كمصفوفة من البايتات
وشكرا