Min lilla kompressionsassistent...om förbättrad version
Jag laddade upp min kompressionsassistentklass innan och insåg nästan omedelbart att den lider av "'", "legacy lag," ', - så den МSK3 har förändrats så mycket under de månaderna att den var riktigt dålig. Hursomhelst, den här bilden är en modifierad version av den klassen, som jag också provat på i min nya formateringsschema. SharpZipLib.
med System;
med hjälp av System
med hjälp av System
med hjälp av ICSharpCode .SharpZipLib;
Namespace SerializableJob.Kompression
{
public enum Kompressionstyp
{
GZip,
BZip2,
Zip
}
offentlig klass Kompression
{
offentlig statisk kompressionstyp Kompressions-Provider = Compressions प्रकार .GZipM SK2
privat statisk ström utgångStromen(Strom ingångStrumen )
{
strömbrytare(KompressionProvider)
{
fall Kompressionstyp.BZip2:
ge tillbaka den nya ICSharpCoden.SharpZipLib.BZipM SK2B Zip 2OutputStreamMSC4inputStream≥);
fall Kompressionstyp.GZip:
ge tillbaka den nya ICSharpCoden.SharpZipLib.GZipM SK2G ZipOutputStream
fall Kompressionstyp.Zip:
ge tillbaka den nya ICSharpCoden .SharpZipLib.Zip
default:
ge tillbaka den nya ICSharpCoden.SharpZipLib.GZipM SK2G ZipOutputStream
}
}
privat statisk Stream InputStream(Stream inputStream )
{
strömbrytare(KompressionProvider)
{
fall Kompressionstyp.BZip2:
ge tillbaka den nya ICSharpCoden.SharpZipLib.BZipM SK2B Zip 2InputStreamMSC4inputStream≥);
fall Kompressionstyp.GZip:
ge tillbaka den nya ICSharpCoden.SharpZipLib.GZipM SK2G ZipInputStream
fall Kompressionstyp.Zip:
ge tillbaka den nya ICSharpCoden.SharpZipLib.Zip
default:
ge tillbaka den nya ICSharpCoden.SharpZipLib.GZipM SK2G ZipInputStream
}
}
offentlig statisk byte[] Komprimera[] byter för att komprimera)
{
MemoryStream ms = ny MemoryStream();
Stream s = OutputStream(msM SK2
- skriva ( byter för att komprimera
s.CloseM SK1
ge tillbaka ms.ToArray();
}
offentlig statisk string Komprimera(string stringToKompressa )
{
byte[] komprimerade data = CompressToByte
string strOut = Konvertera.ToBase
ge tillbaka strOut;
}
offentlig statisk byte[] CompressToByte(string stringToCompress
{
byte[] bytdata | = | Kodering |. | Enkoder | МSK3 | GetBytes | ( | Sträng för att komprimera
återkomma Komprimera(bytData);;
}
offentlig string DeCompress(string stringToDecompress )
{
string outString = string.OttystM SK2
om (stringToDecompress == null
{
werfen nya ArgumentNullException("stringToDecompressM SK1Ni försökte använda en tom string");
}
att försöka
{
byte[] inArr = Konvertera.VomBaseMSC3StringM SK4stringToDekompressaMska5TrimM Ska6
outString = System
}
få tag (NullreferensException nExM SK1
{
ge tillbaka nEx.Message;
}
återvänder utString;
}
offentlig statisk byte[] DeCompress[] byterAtkomprimera)
{
byte[] writeData = nytt byt[4096];
Strom s2 = InputStream ( ny minnesström, ( byter för att dekomprimera,));
MemoryStream outStream = ny MemoryStream();
medan
{
int-storlek = sM SK1Read(skrivdata ,0,skriv dataMska4LängdMka5
om(storlek>0)
{
utströmning. skriva ( skrivadata M SK2 storlek );
}
annat
{
bryta;
}
}
s2.CloseM SK1
byte[] utArr
outStream.Close();
återvända utArr;
}
}
} ?>