Private byte [] compression (byte [] data, compressionmode mode) {deflatestream zip = NULL; try {If (mode = compressionmode. compress) // compression function {memorystream MS = new memorystream (); zip = new deflatestream (MS, mode, true); zip. write (data, 0, Data. length); zip. close (); Return Ms. toarray ();} else // extract function {memorystream MS = new memorystream (); Ms. write (data, 0, Data. length); Ms. flush (); Ms. position = 0; Zip = new deflatestream (MS, mode, true); memorystream OS = new memorystream (); int size = 1024*100; byte [] Buf = new byte [size]; int L = 0; do {L = zip. read (BUF, 0, size); If (L = 0) L = zip. read (BUF, 0, size); OS. write (BUF, 0, L);} while (L! = 0); zip. Close (); Return OS. toarray () ;}} catch {If (zip! = NULL) Zip. Close (); return NULL;} finally {If (zip! = NULL) Zip. Close ();}}
Compression and decompression Functions