
Impela, ake singene sijule emhlabeni wokuminyanisa kwe-GZip ku-C#.
Igama elithi 'GZip' lingase libonakale liwubuchwepheshe futhi lethusa ekuqaleni, kodwa umqondo walo nokusebenzisa kulula. Emqondweni wayo, I-GZip ifomethi yefayela evame ukusetshenziselwa ukucindezelwa kwefayela nokuwohloka. Emhlabeni wokuthuthukiswa kwewebhu nokudluliswa kwedatha nge-inthanethi, i-GZip idlala indima ebalulekile ekuthuthukiseni usayizi wedatha ethunyelwayo, ngaleyo ndlela yenze inqubo yokudlulisa idatha isheshe futhi isebenze kahle kakhulu.
Ngolimi lokuhlela lwe-C#, i Isistimu.IO.Compression i-namespace ihlinzeka ngezindlela ezidingekayo namakilasi ukuze uphathe kahle ukucindezelwa kwe-GZip. Manje, ake sicwilise ku- Kanjani yayo - kusetshenziswa i-GZip ukuze ucindezele futhi unciphise ukuhlelwa kwebhayithi.
Isixazululo Senkinga
Ukuze uziphe uhlu lwebhayithi, sizobe sisebenzisa isigaba se-GZipStream kanye nekilasi le-MemoryStream elinikezwe ku-System.IO kanye nezikhala zamagama ze-System.IO.Compression, ngokulandelanayo.
[isigaba=ikhodi ulimi=”C#”]
public static byte[] GZipCompress(byte[] idatha)
{
usebenzisa(MemoryStream ms = iMemoryStream entsha())
usebenzisa(GZipStream gzip = new GZipStream(ms, CompressionMode.Compress, true))
{
gzip.Bhala(idatha, 0, idatha.Ubude);
}
buyisela ms.ToArray();
}
Futhi ekunciphiseni uhlu lwebhayithi ecindezelwe nge-GZip, sizosebenzisa zombili izigaba ze-GZipStream ne-MemoryStream kodwa kulokhu, ngokusonta.
public static byte[] GZipDecompress(byte[] idatha)
{
usebenzisa(Okukhipha iMemoryStream = iMemoryStream entsha())
usebenzisa(Okufaka iMemoryStream = iMemoryStream entsha(idatha))
usebenzisa(GZipStream gzip = new GZipStream(input, CompressionMode.Decompress))
{
gzip.CopyTo(output);
}
buyisela okukhiphayo.ToArray();
}
Amazwibela ekhodi amabili angenhla abonisa isixazululo sokucindezela kanye nokucindezela uhlu lwebhayithi usebenzisa i-GZip ku-C#.
Incazelo yesinyathelo ngesinyathelo yeKhodi
Ngendlela yokucindezela, izinyathelo ziqondile:
- Kudalwe isenzakalo esisha se-MemoryStream.
- Kudalwe isenzakalo esisha se-GZipStream esebenzisa i-MemoryStream eshiwo ngenhla njengokusakaza kwayo okuyisisekelo. I-CompressionMode isethelwe ku-'Compress'.
- Idatha ye-byte ibhalwe ku-GZipStream eyiminyanisa.
- Ekugcineni, idatha ecindezelwe ikhishwa ku-MemoryStream kusetshenziswa indlela yayo ye-ToArray().
Ngendlela ye-decompression:
- Isenzakalo se-MemoryStream esiphumayo kanye nesenzakalo se-MemoryStream esiqukethe idatha ecindezelweyo siyadalwa.
- Isibonelo se-GZipStream senziwa kusetshenziswa okokufaka kwe-MemoryStream futhi i-CompressionMode isethwe ukuze ithi 'Decompress'.
- Ekugcineni, idatha encishisiwe ikopishelwa kokuphumayo kwe-MemoryStream futhi ibuyiselwa njenge-byte array.
Ikilasi le-GZipStream
Ikilasi le-GZipStream, eligcinwe ngaphakathi kwe-System.IO.Compression namespace ku-C#, iyithuluzi elinamandla lokucindezela nokudiliza idatha. Inikeza izinketho ezakhelwe ngaphakathi zokunquma izinga lokucindezelwa olidingayo, kusukela ekungacindezelini kuya kokucindezelwa okufanele.
I-MemoryStream Class
Ikilasi le-MemoryStream, ngaphansi kwe-System.IO namespace, limele ukusakaza kumemori. Ivamise ukusetshenziselwa ukufunda kusuka noma ukubhala kuya kuma-byte array ngaphandle kwesidingo sesitolo esisekelayo.
Lezi kumane kuwukubukezwa okufushane kwalezi zihloko. Ukuze ubambe ngokugcwele amandla ale mitapo yolwazi, ngena ujule esisemthethweni C# imibhalo kanye nokuhlola ngezimo ezahlukene kanye nezimo zokusebenzisa. Khumbula, ulwazi olwenziwayo kanye nokuhlola kuvame ukuba yizindlela ezingcono kakhulu zokufunda nokuphatha imiqondo yokuhlela.