Show last authors
1 = Usefull code snippets =
2
3 == C# .NET ==
4
5 == Zip Stream class ==
6
7 {{info}}
8 This is a Zip Stream class you can use to extract a zipstream.
9 {{/info}}
10
11 {{code language="Csharp" layout="LINENUMBERS"}}
12 /// <summary>
13 /// Helper class for compress en decompress of file data
14 /// </summary>
15 public static class ZipStreamHelper {
16 #region Compress and encode
17 /// <summary>
18 /// Comprimeer een string en geeft deze terug in Base64 string.
19 /// </summary>
20 /// <param name="content">filecontent</param>
21 /// <returns>gecomprimeerde string</returns>
22 public static string CompressToBase64String(string content) {
23 //string to byte[]
24 byte[] contentArray = stringToByteArray(content);
25 // Compress
26 byte[] compressed = Compress(contentArray);
27 return base64_encode(compressed);
28 }
29
30 /// <summary>
31 /// Zet een string om naar een ByteArray
32 /// </summary>
33 /// <param name="content">filecontent</param>
34 /// <returns>ByteArray</returns>
35 public static byte[] stringToByteArray(string content) {
36 System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
37 return encoding.GetBytes(content);
38 }
39
40 /// <summary>
41 /// comprimeer een ByteArray
42 /// </summary>
43 /// <param name="data">filedata als ByteArray</param>
44 /// <returns>gecomprimeerde ByteArray</returns>
45 public static byte[] Compress(byte[] data) {
46 using(var compressedStream = new MemoryStream())
47 using(var zipStream = new GZipStream(compressedStream, CompressionMode.Compress)) {
48 zipStream.Write(data, 0, data.Length);
49 zipStream.Close();
50 return compressedStream.ToArray();
51 }
52 }
53
54 /// <summary>
55 /// Zet een ByteArray om naar een Base64 string
56 /// </summary>
57 /// <param name="data">gecomprimeerde ByteArray</param>
58 /// <returns>Base 64 string</returns>
59 public static string base64_encode(byte[] data) {
60 if (data == null)
61 return string.Empty;
62 return Convert.ToBase64String(data);
63 }
64
65 /// <summary>
66 /// Zet een string om naar een Base64 string
67 /// </summary>
68 /// <param name="data">string</param>
69 /// <returns>Base 64 string</returns>
70 public static string string_base64_encode(string data) {
71 if (string.IsNullOrEmpty(data))
72 return string.Empty;
73
74 //string to byte[]
75 byte[] contentArray = stringToByteArray(data);
76 return base64_encode(contentArray);
77 }
78 #endregion
79
80 #region Decompress and decode
81 // Decode and decompress
82 /// <summary>
83 /// Decomprimeer een Base64 string naar een string
84 /// </summary>
85 /// <param name="contentBase64">GZIP Base64 string</param>
86 /// <returns>string</returns>
87 public static string DecompressBase64StringToString(string contentBase64) {
88 // Decompress
89 byte[] decoded = base64_decode(contentBase64);
90 byte[] decompressed = Decompress(decoded);
91
92 return byteArrayTostring(decompressed);
93 }
94
95 /// <summary>
96 /// Zet een ByteArray om in een normale string
97 /// </summary>
98 /// <param name="data">ByteArray</param>
99 /// <returns>string</returns>
100 public static string byteArrayTostring(byte[] data) {
101 System.Text.UTF8Encoding enc = new System.Text.UTF8Encoding();
102 return enc.GetString(data);
103 }
104
105 /// <summary>
106 /// Zet een Base64 string om naar een ByteArray
107 /// </summary>
108 /// <param name="encodedData">Base64 string</param>
109 /// <returns>gecomprimeerde ByteArray</returns>
110 public static byte[] base64_decode(string encodedData) {
111 byte[] encodedDataAsBytes = Convert.FromBase64String(encodedData);
112 return encodedDataAsBytes;
113 }
114
115 /// <summary>
116 /// Zet een gecomprimeerde ByteArray om in een ByteArray
117 /// </summary>
118 /// <param name="data">gecomprimeerde ByteArray</param>
119 /// <returns>ByteArray (gedecomprimeerd)</returns>
120 public static byte[] Decompress(byte[] data) {
121 using(var compressedStream = new MemoryStream(data))
122 using(var zipStream = new GZipStream(compressedStream, CompressionMode.Decompress))
123 using(var resultStream = new MemoryStream()) {
124 var buffer = new byte[4096];
125 int read;
126
127 while ((read = zipStream.Read(buffer, 0, buffer.Length)) > 0) {
128 resultStream.Write(buffer, 0, read);
129 }
130
131 return resultStream.ToArray();
132 }
133 }
134 #endregion
135 }
136 {{/code}}
TerraIndex
asd