Il mio piccolo helper di compressione... versione migliorata (Italiano (Italian))

Il mio piccolo helper di compressione... versione migliorata

Tuesday, 06 April 2004

//

2 minute read

Ho pubblicato la mia classe di assistenti alla compressione prima e mi sono reso conto quasi immediatamente che soffriva di 'legacy lagM SK1 - quindi è stato cambiato così tanto negli mesi che era davvero cattivo! Comunque, è una versione modificata di quella classe (che io'ho provato anche il mio nuovo schema di formatazione suM SK3 come riminatoreMSC4 è solo un semplice wrapper intorno SharpZipLib.

usando System;

usando il sistema.Text;

usando il sistema.IO;

usando ICSharpCode.SharpZipLib;

namespace SerializableJob.Compressione

{

public enum CompressionType

{

GZip,

BZip2,

Zip

}

Compressione di classe pubblica

{

Public static CompressionType CompressionProvider = Compression TypeM SK1GZip;

Stream Private Statica OutputStream(InputStremaStream )

{

switch(CompressionProvider)

{

Case CompressionType.BZip2:

restituire il nuovo ICSharpCode.SharpZipLib.BZipM SK2B Zip 2OutputStreamMSC4inputStream≥);

Case CompressionType.GZip:

restituire il nuovo ICSharpCode.SharpZipLib.GZipM SK2G ZipOutputStreamMSC3inputStream≥);

tipo di compressione.Zip

restituire il nuovo ICSharpCode.SharpZipLib.ZipM SK2ZepOutputStreamMSC3inputStream≥);

default:

restituire il nuovo ICSharpCode.SharpZipLib.GZipM SK2G ZipOutputStreamMSC3inputStream≥);

}

}

Stream InputStream(Stream inputStream )

{

switch(CompressionProvider)

{

Case CompressionType.BZip2:

restituire il nuovo ICSharpCode.SharpZipLib.BZipM SK2B Zip 2InputStreamMSC4inputStream≥);

Case CompressionType.GZip:

restituire il nuovo ICSharpCode.SharpZipLib.GZipM SK2G ZipInputStreamMSC3inputStream≥);

tipo di compressione.Zip

restituire il nuovo ICSharpCode.SharpZipLib.ZipM SK2ZepInputStreamMSC3inputStream≥);

default:

restituire il nuovo ICSharpCode.SharpZipLib.GZipM SK2G ZipInputStreamMSC3inputStream≥); 

}

}

Byte statico pubblico[] Compress[]BytesToCompress)

{

MemoryStream ms = nuovo MemoryStream();

Stream s = OutputStream(msM SK2

  1. ScrivereM SK1bytesToCompress,0, bytesToCompression .LongthMSC4

s.Close();

restituire ms.ToArray();

}

String Statico Publico Compress(string stringToCompress )

{

Byte[] dati compressi = CompressToByteM SK2stringToCompress);

string strOut = Convertire.ToBaseM SK2StringMSC3compressedData );

tornare strOut;

}

Byte statico pubblico[] CompressToByteM SK1string stringToCompress)

{

Byte[] bytData = Encoding.UnicodeM SK3GetBytesMSC4stringToCompressMST5

tornare Compress(bytData);;

}

String pubblico DeCompress(string stringToDecompress )

{

string outString = string.EmptyM SK2

Se (stringToDecompress == null)

{

lanciare un nuovo ArgumentNullException("stringToDecompress","hai cercato di usare una stringa vuotaM SK2

}

provare

{

Byte[] inArr = ConvertireM SK2FromBase64StringMNK4stringToDecompressMRK5TrimMMK6

outString = System.Texto .EncodazioneM SK3UnicodeMSC4GetStringMska5DeCompressMske6inArrMске7

}

Cattura (NullReferenceException nEx)

{

restituire nEx.Message;

}

tornare fuoriString;

}

Byte statico pubblico[] DeCompress(byte[]BytesToDecompress)

{

Byte[] writeData = nuovo byte[4096];

Stream s2 M SK1 InputStream(new MemoryStream (bytesToDecompressMSC4

MemoryStream outStream = nuovo MemoryStream();

Mentre(true)

{

dimensione int = sM SK1Read(writeDataMSC3w writeData .LongthMST5

se(grandità>0)

{

outStream.WriteM SK1writeData,0,size );

}

Un altro.

{

interrompere;

}

}

s2.Close();

Byte[] outArr = outStreamM SK2ToArray();

outStream.Close();

tornare fuoriArr;

}

}

} ?>

Finding related posts...
logo

© 2026 Scott Galloway — Unlicense — All content and source code on this site is free to use, copy, modify, and sell.