static void Main(string[] args) { //压缩分为三种:1.字节数组 2.对文件的压缩 3.对字符串的压缩 //下面掩饰的是加解密字节数组 byte[] cbytes = null; //压缩 using (MemoryStream cms = new MemoryStream()) { using (System.IO.Compression.GZipStream gzip = new System.IO.Compression.GZipStream(cms, System.IO.Compression.CompressionMode.Compress)) { //将数据写入基础流,同时会被压缩 byte[] bytes = Encoding.UTF8.GetBytes("解压缩测试"); gzip.Write(bytes, 0, bytes.Length); } cbytes = cms.ToArray(); } //解压 using (MemoryStream dms = new MemoryStream()) { using (MemoryStream cms = new MemoryStream(cbytes)) { using (System.IO.Compression.GZipStream gzip = new System.IO.Compression.GZipStream(cms, System.IO.Compression.CompressionMode.Decompress)) { byte[] bytes = new byte[1024]; int len = 0; //读取压缩流,同时会被解压 while ((len = gzip.Read(bytes, 0, bytes.Length)) > 0) { dms.Write(bytes, 0, len); } } } Console.WriteLine(Encoding.UTF8.GetString(dms.ToArray())); //result:"解压缩测试" } //———————————————————————————————————————————— //下面示例来自:http://www.cnblogs.com/yank/p/Compress.html TestGZipCompressFile(); string str = "abssssdddssssssssss11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"; string orgStr = str; string result = ""; //将传入的字符串直接进行压缩,解压缩,会出现乱码。 //先转码,然后再压缩。解压缩:先解压缩,再反转码 Console.WriteLine("源字符串为:{0}", str); result = GZipCompress.Compress(str); Console.WriteLine("压缩后为:{0}", result); Console.Write("压缩前:{0},压缩后:{1}", str.Length, result.Length); Console.WriteLine("开始解压..."); Console.WriteLine("解压后:{0}", result); result = GZipCompress.Decompress(result); Console.WriteLine("解压后与源字符串对比,是否相等:{0}", result == orgStr); Console.WriteLine("源字符串为:{0}", str); result = ZipComporessor.Compress(str); Console.WriteLine("压缩后为:{0}", result); Console.Write("压缩前:{0},压缩后:{1}", str.Length, result.Length); Console.WriteLine("开始解压..."); Console.WriteLine("解压后:{0}", result); result = ZipComporessor.Decompress(result); Console.WriteLine("解压后与源字符串对比,是否相等:{0}", result == orgStr); Console.WriteLine("输入任意键,退出!"); Console.ReadKey(); }
/// <summary> /// In Memory GZip Decompressor /// </summary> /// <param name="data"></param> /// <returns></returns> public static byte[] GZip_Decompress(this byte[] data) { int length = 100000; //10Kb byte[] Ob = new byte[length]; byte[] result = null; using (var ms = new MemoryStream(data)) { using (var gz = new System.IO.Compression.GZipStream(ms, System.IO.Compression.CompressionMode.Decompress)) { int a = 0; while ((a = gz.Read(Ob, 0, length)) > 0) { if (a == length) result = result.Concat(Ob); else result = result.Concat(Ob.Substring(0, a)); } gz.Close(); } ms.Close(); } return result; }
public static byte[] Decompress(byte[] data) { try { MemoryStream ms = new MemoryStream(data); System.IO.Compression.GZipStream zip = new System.IO.Compression.GZipStream(ms, System.IO.Compression.CompressionMode.Decompress, true); MemoryStream msreader = new MemoryStream(); byte[] buffer = new byte[0x1000]; while (true) { int reader = zip.Read(buffer, 0, buffer.Length); if (reader <= 0) { break; } msreader.Write(buffer, 0, reader); } zip.Close(); ms.Close(); msreader.Position = 0; buffer = msreader.ToArray(); msreader.Close(); return buffer; } catch (Exception e) { throw new Exception(e.Message); } }
public static string UnZip(string value) { //Transform string into byte[] byte[] byteArray = new byte[value.Length]; int indexBA = 0; foreach (char item in value.ToCharArray()) { byteArray[indexBA++] = (byte)item; } //Prepare for decompress System.IO.MemoryStream ms = new System.IO.MemoryStream(byteArray); System.IO.Compression.GZipStream sr = new System.IO.Compression.GZipStream(ms, System.IO.Compression.CompressionMode.Decompress); //Reset variable to collect uncompressed result byteArray = new byte[byteArray.Length]; //Decompress int rByte = sr.Read(byteArray, 0, byteArray.Length); //Transform byte[] unzip data to string System.Text.StringBuilder sB = new System.Text.StringBuilder(rByte); //Read the number of bytes GZipStream red and do not a for each bytes in //resultByteArray; for (int i = 0; i < rByte; i++) { sB.Append((char)byteArray[i]); } sr.Close(); ms.Close(); sr.Dispose(); ms.Dispose(); return sB.ToString(); }
/// <summary> /// �����ѹ���������л� /// </summary> /// <param name="buffer"></param> /// <returns></returns> public static object Decompress(byte[] buffer, Type type) { System.IO.MemoryStream ms3 = new System.IO.MemoryStream(); System.IO.MemoryStream ms2 = new System.IO.MemoryStream(buffer); System.IO.Compression.GZipStream gs = new System.IO.Compression.GZipStream(ms2, System.IO.Compression.CompressionMode.Decompress); byte[] writeData = new byte[4096]; while (true) { int size = gs.Read(writeData, 0, writeData.Length); if (size > 0) { ms3.Write(writeData, 0, size); } else { break; } } gs.Close(); ms3.Flush(); byte[] DecompressBuf = ms3.ToArray(); #region deserialize CompressionSerialize compressionSerialize = new CompressionSerialize(); return compressionSerialize.Deserialize(DecompressBuf); #endregion }
public byte[] uncompress(byte[] data) { MemoryStream packed = new MemoryStream(data); System.IO.Stream unpacker = new System.IO.Compression.GZipStream( packed, System.IO.Compression.CompressionMode.Decompress ); MemoryStream unpacked = new MemoryStream(); byte[] chunk = new byte[10240]; int n = unpacker.Read(chunk, 0, chunk.Length); while (n > 0) { unpacked.Write(chunk, 0, n); n = unpacker.Read(chunk, 0, chunk.Length); } return unpacked.ToArray(); }
static void Main(string[] args) { System.IO.Stream unpacker = new System.IO.Compression.GZipStream( System.Console.OpenStandardInput(), System.IO.Compression.CompressionMode.Decompress ); System.IO.Stream stdout = System.Console.OpenStandardOutput(); byte[] chunk = new byte[10240]; try { int n = unpacker.Read(chunk, 0, chunk.Length); while (n > 0) { stdout.Write(chunk, 0, n); n = unpacker.Read(chunk, 0, chunk.Length); } } catch (System.IO.InvalidDataException e) { } }
///// <summary> ///// In Memory GZip Decompressor ///// </summary> ///// <param name="data"></param> ///// <returns></returns> //public static byte[] GZip_Decompress(this byte[] data) //{ // int length = 100000; // byte[] Ob = new byte[length]; // byte[] result = null; // using (var ms = new MemoryStream(data)) // { // using (var gz = new System.IO.Compression.GZipStream(ms, System.IO.Compression.CompressionMode.Decompress)) // { // int a = 0; // while ((a = gz.Read(Ob, 0, length)) > 0) // { // if (a == length) // result = result.Concat(Ob); // else // result = result.Concat(Ob.Substring(0, a)); // } // gz.Close(); // } // ms.Close(); // } // return result; //} ///// <summary> ///// In Memory GZip Decompressor ///// </summary> ///// <param name="data"></param> ///// <returns></returns> //public static byte[] GZip_Decompress1(this byte[] data) //{ // byte[] result = null; // using (var os = new MemoryStream()) // { // using (var ms = new MemoryStream(data)) // { // using (var gz = new System.IO.Compression.GZipStream(ms, System.IO.Compression.CompressionMode.Decompress)) // { // gz.CopyTo(os); // gz.Close(); // } // ms.Close(); // } // result = os.ToArray(); // os.Close(); // } // return result; //} /// <summary> /// In Memory GZip Decompressor. Fastest implementation at the moment /// </summary> /// <param name="data"></param> /// <returns></returns> public static byte[] GZip_Decompress(this byte[] data) { int length = 100000; byte[] Ob = new byte[length]; byte[] result = null; List <byte[]> fl = new List <byte[]>(); long fLen = 0; using (var ms = new MemoryStream(data)) { using (var gz = new System.IO.Compression.GZipStream(ms, System.IO.Compression.CompressionMode.Decompress)) { int a = 0; while ((a = gz.Read(Ob, 0, length)) > 0) { if (a == length) { fl.Add(Ob); } else { fl.Add(Ob.Substring(0, a)); } fLen += a; Ob = new byte[length]; } gz.Close(); } ms.Close(); if (fLen > 0) { result = new byte[fLen]; int offset = 0; foreach (var el in fl) { Buffer.BlockCopy(el, 0, result, offset, el.Length); offset += el.Length; } } } return(result); }
//identify why passing stream instead of bytes returns empty result public static byte[] DecompressGzip(byte[] gzip) { using (var decompressor = new System.IO.Compression.GZipStream(new MemoryStream(gzip), System.IO.Compression.CompressionMode.Decompress)) { var buffer = new byte[BufferSize]; using (var output = new MemoryStream()) { int read; while ((read = decompressor.Read(buffer, 0, buffer.Length)) > 0) { output.Write(buffer, 0, read); } return output.ToArray(); } } }
private static string DecompressBytes(byte[] compressedBytes) { string uncompressedObj = string.Empty; using (System.IO.Compression.GZipStream stream = new System.IO.Compression.GZipStream(new MemoryStream(compressedBytes, 0, compressedBytes.Length), System.IO.Compression.CompressionMode.Decompress)) { MemoryStream memory = new MemoryStream(); byte[] writeData = new byte[4096]; int resLen; while ((resLen = stream.Read(writeData, 0, writeData.Length)) > 0) { memory.Write(writeData, 0, resLen); } var uncompressedBytes = memory.ToArray(); uncompressedObj = Encoding.UTF8.GetString(uncompressedBytes, 0, uncompressedBytes.Length); } return(uncompressedObj); }
static byte [] UnZip(string data) { var zipBytes = Convert.FromBase64String(data); MemoryStream mso = new System.IO.MemoryStream(); var msi = new System.IO.MemoryStream(zipBytes); var gs = new System.IO.Compression.GZipStream(msi, System.IO.Compression.CompressionMode.Decompress); byte[] tmp = new byte [102400]; var readCount = 0; while ((readCount = gs.Read(tmp, 0, tmp.Length)) > 0) { mso.Write(tmp, 0, readCount); } byte [] res = mso.ToArray(); return(res); }
/// <summary> 解压 byte[] </summary> public static byte[] UGZipBt(byte[] data) { using (MemoryStream ms = new MemoryStream()) { using (System.IO.Compression.GZipStream gz = new System.IO.Compression.GZipStream(new MemoryStream(data), System.IO.Compression.CompressionMode.Decompress, true)) { byte[] buffer = new byte[4096]; int rsv; while ((rsv = gz.Read(buffer, 0, buffer.Length)) > 0) { ms.Write(buffer, 0, rsv); } gz.Close(); } return(ms.ToArray()); } }
/// <summary> /// 解压缩 *.Z 文件,可指定是否删除原文件。 /// </summary> /// <param name="compressedFilePath"></param> /// <param name="destDir"></param> public static void DecompressLzw(string compressedFilePath, string destDir, bool deleSourse = false, bool overwrite = true) { string dest = destDir + "\\" + Path.GetFileNameWithoutExtension(compressedFilePath); if (File.Exists(dest)) { if (overwrite) { File.Delete(dest); } else { return; } } Utils.FileUtil.CheckOrCreateDirectory(destDir); FileStream fs = new FileStream(compressedFilePath, FileMode.Open, FileAccess.Read); System.IO.Compression.GZipStream input = new System.IO.Compression.GZipStream(fs, System.IO.Compression.CompressionMode.Decompress); //ICSharpCode.SharpZipLib.LZW.LzwInputStream input = new ICSharpCode.SharpZipLib.LZW.LzwInputStream(fs); FileStream output = new FileStream(dest, FileMode.Create); int count = 0, size = 1024; byte[] buffer = new byte[size]; while ((count = input.Read(buffer, 0, size)) > 0) { output.Write(buffer, 0, count); output.Flush(); } output.Close(); output.Dispose(); input.Close(); input.Dispose(); // ZipUtil.DecompressFile(compressedFilePath, dest); if (deleSourse) { File.Delete(compressedFilePath); } }
public static void Decompress(string fileToDecompress) { using (var inFile = System.IO.File.OpenRead(fileToDecompress)) { using (var outFile = System.IO.File.Create(@"C:\Testmappe\test_new.txt")) { using (var decompress = new System.IO.Compression.GZipStream(inFile, System.IO.Compression.CompressionMode.Decompress)) { byte[] buffer = new byte[1024]; int nRead; while ((nRead = decompress.Read(buffer, 0, buffer.Length)) > 0) { outFile.Write(buffer, 0, nRead); } /* http://stackoverflow.com/questions/1581694/gzipstream-and-decompression */ } } } }
public static byte[] DecompressGzip(Stream input) { using ( var decompressor = new System.IO.Compression.GZipStream(input, System.IO.Compression.CompressionMode.Decompress)) { var buffer = new byte[BufferSize]; using (var output = new MemoryStream()) { int read; while ((read = decompressor.Read(buffer, 0, buffer.Length)) > 0) { output.Write(buffer, 0, read); } return(output.ToArray()); } } }
public string UnZip(string compressedText) { byte[] gzBuffer = Convert.FromBase64String(compressedText); using (MemoryStream ms = new MemoryStream()) { int msgLength = BitConverter.ToInt32(gzBuffer, 0); ms.Write(gzBuffer, 4, gzBuffer.Length - 4); byte[] buffer = new byte[msgLength]; ms.Position = 0; using (System.IO.Compression.GZipStream zip = new System.IO.Compression.GZipStream(ms, System.IO.Compression.CompressionMode.Decompress)) { zip.Read(buffer, 0, buffer.Length); } return System.Text.Encoding.Unicode.GetString(buffer, 0, buffer.Length); } }
public static string Decompress(string compressedText) { byte[] gzBuffer = Convert.FromBase64String(compressedText); using (MemoryStream ms = new MemoryStream()) { int msgLength = BitConverter.ToInt32(gzBuffer, 0); ms.Write(gzBuffer, 4, (gzBuffer.Length - 4)); byte[] buffer = new byte[msgLength]; ms.Position = 0; using (System.IO.Compression.GZipStream zip = new System.IO.Compression.GZipStream(ms, System.IO.Compression.CompressionMode.Decompress)) { zip.Read(buffer, 0, buffer.Length); } return(Encoding.UTF8.GetString(buffer)); } }
/// <summary> /// 进行gzip的解压缩 /// </summary> /// <param name="data"></param> /// <returns></returns> private static byte[] UnGZip(byte[] data) { using (MemoryStream dms = new MemoryStream()) { using (MemoryStream cms = new MemoryStream(data)) { using (System.IO.Compression.GZipStream gzip = new System.IO.Compression.GZipStream(cms, System.IO.Compression.CompressionMode.Decompress)) { byte[] bytes = new byte[1024]; int len = 0; while ((len = gzip.Read(bytes, 0, bytes.Length)) > 0) { dms.Write(bytes, 0, len); } } } return(dms.ToArray()); } }
public static byte[] DecompressGzip(Stream input, Encoding e) { byte[] tempOutput; using (System.IO.Compression.GZipStream decompressor = new System.IO.Compression.GZipStream(input, System.IO.Compression.CompressionMode.Decompress)) { int read = 0; var buffer = new byte[375]; using (MemoryStream output = new MemoryStream()) { while ((read = decompressor.Read(buffer, 0, buffer.Length)) > 0) { output.Write(buffer, 0, read); } tempOutput = output.ToArray(); } } return(tempOutput); }
public static System.IO.MemoryStream TryLoadResourceStream(string streamName) { if (ResourceAssembly == null) { return(null); } foreach (string name in ResourceAssembly.GetManifestResourceNames()) { if (name.EndsWith(streamName, StringComparison.OrdinalIgnoreCase)) { // Try to get as is using (System.IO.Stream s = ResourceAssembly.GetManifestResourceStream(name)) if (s != null) { return(new System.IO.MemoryStream(new System.IO.BinaryReader(s).ReadBytes((int)s.Length))); } } if (name.EndsWith(streamName + ".gz", StringComparison.OrdinalIgnoreCase)) { // M'kay, maybe it's compressed using (System.IO.Stream s = ResourceAssembly.GetManifestResourceStream(name)) { if (s != null) { using (System.IO.Compression.GZipStream gz = new System.IO.Compression.GZipStream(s, System.IO.Compression.CompressionMode.Decompress, true)) { System.IO.MemoryStream ms = new System.IO.MemoryStream(); byte[] bytes = new byte[16384]; int n; while ((n = gz.Read(bytes, 0, bytes.Length)) != 0) { ms.Write(bytes, 0, n); } ms.Position = 0; return(ms); } } } } } // Better luck next time return(null); }
private static MemoryStream Decompress(byte[] gzip) { using (var stream = new System.IO.Compression.GZipStream(new MemoryStream(gzip), System.IO.Compression.CompressionMode.Decompress)) { const int size = 4096; byte[] buffer = new byte[size]; MemoryStream memory = new MemoryStream(); int count = 0; do { count = stream.Read(buffer, 0, size); if (count > 0) { memory.Write(buffer, 0, count); } }while (count > 0); return(memory); } }
/// <summary> /// 解压 /// </summary> /// <param name="value">值</param> public static byte[] Decompress(byte[] value) { var ms = new MicrosoftSystem.IO.MemoryStream(value); var cs = new MicrosoftSystem.IO.Compression.GZipStream(ms, MicrosoftSystem.IO.Compression.CompressionMode.Decompress); var outBuffer = new MicrosoftSystem.IO.MemoryStream(); var block = new byte[1024]; while (true) { var bytesRead = cs.Read(block, 0, block.Length); if (bytesRead <= 0) { break; } outBuffer.Write(block, 0, bytesRead); } cs.Close(); return(outBuffer.ToArray()); }
public byte[] GetPacketDgram() { TCPPacketFlags Flags = this.GetPacketFlags(); byte[] Dgram = null; try { if ((Flags & TCPPacketFlags.GZipCompressed) > 0) { this.Content.Seek(0, System.IO.SeekOrigin.Begin); int OriginalLength = this.Content.BR.ReadInt32(); System.IO.Compression.GZipStream GZip = new System.IO.Compression.GZipStream(this.Content, System.IO.Compression.CompressionMode.Decompress); //Dim DecompressedBuffer As Byte() = New Byte(OriginalLength - 1) {} //Dim totalCount As Integer = TCPPacketBuilder.ReadAllBytesFromStream(GZip, DecompressedBuffer) Dgram = new byte[OriginalLength]; GZip.Read(Dgram, 0, OriginalLength); GZip.Close(); } else { //Dgram = New Byte(totalCount - 1) {} //Array.Copy(DecompressedBuffer, 0, Dgram, 0, totalCount) Dgram = this.Content.ToArray(); } this.Header.Close(); this.Content.Close(); this.SetState(PacketState.Empty); } catch (Exception ex) { throw ex; } return(Dgram); }
/// <summary> /// 解压缩一个字节流 /// </summary> /// <param name="buffer"></param> /// <returns></returns> internal static byte[] Decompress(byte[] buffer) { using (var source = new System.IO.MemoryStream(buffer)) { source.Seek(0, System.IO.SeekOrigin.Begin); using (var dest = new System.IO.MemoryStream()) using (var gz = new System.IO.Compression.GZipStream(source, System.IO.Compression.CompressionMode.Decompress)) { var buf = new byte[0x400]; var count = 0; while ((count = gz.Read(buf, 0, buf.Length)) > 0) { dest.Write(buf, 0, count); } dest.Close(); return(dest.ToArray()); } } }
private static string DecompressBytes(byte[] compressedBytes) { string uncompressedObj = string.Empty; // http://stackoverflow.com/questions/12894406/inflating-a-compressed-byte-array-in-winrt // The reason for skipping the first two bytes is that they are part of the zlib spec and not the deflate spec: // http://george.chiramattel.com/blog/2007/09/deflatestream-block-length-does-not-match.html using (System.IO.Compression.GZipStream stream = new System.IO.Compression.GZipStream(new MemoryStream(compressedBytes, 0, compressedBytes.Length), System.IO.Compression.CompressionMode.Decompress)) { MemoryStream memory = new MemoryStream(); byte[] writeData = new byte[4096]; int resLen; while ((resLen = stream.Read(writeData, 0, writeData.Length)) > 0) { memory.Write(writeData, 0, resLen); } var uncompressedBytes = memory.ToArray(); uncompressedObj = Encoding.UTF8.GetString(uncompressedBytes, 0, uncompressedBytes.Length); } return(uncompressedObj); }
public static string UnZip(string value) { //Transform string into byte[] byte[] byteArray = new byte[value.Length]; int indexBA = 0; foreach (char item in value.ToCharArray()) { byteArray[indexBA++] = (byte)item; } //Prepare for decompress System.IO.MemoryStream ms = new System.IO.MemoryStream(byteArray); System.IO.Compression.GZipStream sr = new System.IO.Compression.GZipStream(ms, System.IO.Compression.CompressionMode.Decompress); //Reset variable to collect uncompressed result byteArray = new byte[byteArray.Length]; //Decompress int rByte = sr.Read(byteArray, 0, byteArray.Length); //Transform byte[] unzip data to string System.Text.StringBuilder sB = new System.Text.StringBuilder(rByte); //Read the number of bytes GZipStream red and do not a for each bytes in //resultByteArray; for (int i = 0; i < rByte; i++) { sB.Append((char)byteArray[i]); } sr.Close(); ms.Close(); sr.Dispose(); ms.Dispose(); return(sB.ToString()); }
/// <summary> /// 解压缩图片字节 /// </summary> /// <param name="picBytes"></param> /// <returns></returns> public static byte[] GetGzipPicBytes(byte[] picBytes) { byte[] result = null; using (MemoryStream dms = new MemoryStream()) { using (MemoryStream cms = new MemoryStream(picBytes)) { using (System.IO.Compression.GZipStream gzip = new System.IO.Compression.GZipStream(cms, System.IO.Compression.CompressionMode.Decompress)) { byte[] bytes = new byte[1024]; int len = 0; //读取压缩流,同时会被解压 while ((len = gzip.Read(bytes, 0, bytes.Length)) > 0) { dms.Write(bytes, 0, len); } } } result = dms.ToArray(); } return(result); }
static byte[] Decompress(byte[] gzip) { using (System.IO.Compression.GZipStream stream = new System.IO.Compression.GZipStream(new System.IO.MemoryStream(gzip), System.IO.Compression.CompressionMode.Decompress)) { const int size = 4096; byte[] buffer = new byte[size]; using (System.IO.MemoryStream memory = new System.IO.MemoryStream()) { int count = 0; do { count = stream.Read(buffer, 0, size); if (count > 0) { memory.Write(buffer, 0, count); } }while (count > 0); return(memory.ToArray()); } } }
/// <summary> /// Downloads one TW file /// </summary> private void DownloadFile(string urlFile, string outputFile) { var client = Network.CreateWebRequest(urlFile); using (var response = client.GetResponse()) { var stream = response.GetResponseStream(); Debug.Assert(stream != null); using (var unzip = new System.IO.Compression.GZipStream(stream, System.IO.Compression.CompressionMode.Decompress)) { using (var writer = new FileStream(outputFile, FileMode.Create)) { var block = new byte[4096]; int read; while ((read = unzip.Read(block, 0, block.Length)) != 0) { writer.Write(block, 0, read); } } } } }
public static byte[] DownloadData(this WebClient client, string address, bool handleGzip) { if (!handleGzip) { return(client.DownloadData(address)); } var result = client.DownloadData(address); if (result != null && result.Length > 3 && result[0] == 31 && result[1] == 139 && result[2] == 8) { // GZIP: using (var stream = new System.IO.Compression.GZipStream(new MemoryStream(result), System.IO.Compression.CompressionMode.Decompress)) { var buffer = new byte[4096]; using (var memory = new MemoryStream()) { while (true) { var count = stream.Read(buffer, 0, 4096); if (count > 0) { memory.Write(buffer, 0, count); } else { break; } } return(memory.ToArray()); } } } else { return(result); } }
/// <summary> /// 解壓縮BytyArray資料 /// </summary> /// <param name="compressString">The compress string.</param> /// <returns>System.String.</returns> public static byte[] unCompressString(string compressString) { byte[] zippedData = Convert.FromBase64String(compressString.ToString()); System.IO.MemoryStream ms = new System.IO.MemoryStream(zippedData); System.IO.Compression.GZipStream compressedzipStream = new System.IO.Compression.GZipStream(ms, System.IO.Compression.CompressionMode.Decompress); System.IO.MemoryStream outBuffer = new System.IO.MemoryStream(); byte[] block = new byte[1024]; while (true) { int bytesRead = compressedzipStream.Read(block, 0, block.Length); if (bytesRead <= 0) { break; } else { outBuffer.Write(block, 0, bytesRead); } } compressedzipStream.Close(); return(outBuffer.ToArray()); }
} // End Sub CompressFile // http://msdn.microsoft.com/en-us/library/ms404280(v=vs.80).aspx // And swiftly fail on a large file because buffer < origFile.Length private static void DeCompressFile_ShittyMsdnVersion(string CompressedFile, string DeCompressedFile) { System.IO.FileStream sourceFile = System.IO.File.OpenRead(CompressedFile); System.IO.FileStream destinationFile = System.IO.File.Create(DeCompressedFile); // Because the uncompressed size of the file is unknown, // we are using an arbitrary buffer size. byte[] buffer = new byte[1024 * 1024 * 100]; // Note: Fails here when buffer < FileSizeOfUncompressedFile int n; using (System.IO.Compression.GZipStream input = new System.IO.Compression.GZipStream(sourceFile, System.IO.Compression.CompressionMode.Decompress, false)) { Console.WriteLine("Decompressing {0} to {1}.", sourceFile.Name, destinationFile.Name); n = input.Read(buffer, 0, buffer.Length); destinationFile.Write(buffer, 0, n); } // End Using System.IO.Compression.GZipStream input // Close the files. sourceFile.Close(); destinationFile.Close(); } // End Sub DeCompressFile_ShittyMsdnVersion
public object byteArrayToObject(byte[] data, bool bIsCompressed) { object obj = null; if (bIsCompressed) { //Read the compressed data, copy the reference byte[] zipData = data; //Get the size of the data int dataLength = BitConverter.ToInt32(zipData, 0); using (System.IO.MemoryStream memStream = new System.IO.MemoryStream()) { //Remove size from the compressed data memStream.Write(zipData, 4, zipData.Length - 4); memStream.Seek(0, System.IO.SeekOrigin.Begin); using (System.IO.Compression.GZipStream zip = new System.IO.Compression.GZipStream( memStream, System.IO.Compression.CompressionMode.Decompress)) { data = new byte[dataLength]; //Decompress zip.Read(data, 0, dataLength); } } } //Deserialize System.IO.Stream streamWrite = new System.IO.MemoryStream(data); System.Runtime.Serialization.Formatters.Binary.BinaryFormatter binaryWrite = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter(); streamWrite.Seek(0, System.IO.SeekOrigin.Begin); obj = binaryWrite.Deserialize(streamWrite); return(obj); }
private static System.IO.Stream GetStream(byte[] bs, byte key, bool gzip) { int len = bs.Length; for (int iCount = 0; iCount < len; iCount++, key++) { bs[iCount] = ((byte)(bs[iCount] ^ key)); } System.IO.MemoryStream ms = null; if (gzip) { var stream = new System.IO.Compression.GZipStream( new System.IO.MemoryStream(bs), System.IO.Compression.CompressionMode.Decompress); ms = new System.IO.MemoryStream(); var bsTemp = new byte[1024]; while (true) { len = stream.Read(bsTemp, 0, bsTemp.Length); if (len > 0) { ms.Write(bsTemp, 0, len); } else { break; } } stream.Close(); ms.Position = 0; } else { ms = new System.IO.MemoryStream(bs); } return(ms); }
/// <summary> /// 测试成功 /// </summary> static void GzipTest() { byte[] cbytes = null; //压缩 using (MemoryStream cms = new MemoryStream()) { using (System.IO.Compression.GZipStream gzip = new System.IO.Compression.GZipStream(cms, System.IO.Compression.CompressionMode.Compress)) { //将数据写入基础流,同时会被压缩 var str = File.ReadAllText(@"jsons/print.json"); byte[] bytes = Encoding.UTF8.GetBytes(str); Console.WriteLine($"bytes.Length:{bytes.Length}"); gzip.Write(bytes, 0, bytes.Length); } cbytes = cms.ToArray(); Console.WriteLine($"cbytes.Length:{cbytes.Length}"); } //解压 using (MemoryStream dms = new MemoryStream()) { using (MemoryStream cms = new MemoryStream(cbytes)) { using (System.IO.Compression.GZipStream gzip = new System.IO.Compression.GZipStream(cms, System.IO.Compression.CompressionMode.Decompress)) { byte[] bytes = new byte[1024]; int len = 0; //读取压缩流,同时会被解压 while ((len = gzip.Read(bytes, 0, bytes.Length)) > 0) { dms.Write(bytes, 0, len); } } } Console.WriteLine(Encoding.UTF8.GetString(dms.ToArray())); } }
// Gaetano 'FiR3N3T' Padalino Optimization - [email protected] internal static byte[] DecompressGzip(System.IO.Stream streamInput) { using (System.IO.Stream streamOutput = new System.IO.MemoryStream()) { int iOutputLength = 0; byte[] readBuffer = new byte[4096]; using (System.IO.Compression.GZipStream streamGZip = new System.IO.Compression.GZipStream(streamInput, System.IO.Compression.CompressionMode.Decompress)) { int i; while ((i = streamGZip.Read(readBuffer, 0, readBuffer.Length)) != 0) { streamOutput.Write(readBuffer, 0, i); iOutputLength = iOutputLength + i; } } byte[] buffer = new byte[iOutputLength]; streamOutput.Position = 0; streamOutput.Read(buffer, 0, buffer.Length); return(buffer); } }
private byte[] DecGzipData(byte[] gzipData) { byte[] bytes = new byte[4096]; byte[] decoded; using (System.IO.Compression.GZipStream stream = new System.IO.Compression.GZipStream(new MemoryStream(gzipData), System.IO.Compression.CompressionMode.Decompress)) { using (MemoryStream memory = new MemoryStream()) { int count = 0; do { count = stream.Read(bytes, 0, 4096); if (count > 0) { memory.Write(bytes, 0, count); } }while (count > 0); decoded = memory.ToArray(); } } return(decoded); }
//public static byte[] DecompressGZIP(byte[] gzip) //{ // using (var stream = new Ionic.Zlib.DeflateStream(new MemoryStream(gzip), Ionic.Zlib.CompressionMode.Decompress)) // { // var outStream = new MemoryStream(); // //const Int64 size = gzip.Length; //Playing around with various sizes didn't help // byte[] buffer = new byte[gzip.Length]; // int read; // while ((read = stream.Read(buffer, 0, gzip.Length)) > 0) // { // outStream.Write(buffer, 0, read); // read = 0; // } // return outStream.ToArray(); // } //} static byte[] Decompress(byte[] gzip) { // Create a GZIP stream with decompression mode. // ... Then create a buffer and write into while reading from the GZIP stream. using (System.IO.Compression.GZipStream stream = new System.IO.Compression.GZipStream(new MemoryStream(gzip), System.IO.Compression.CompressionMode.Decompress)) { const int size = 4096; byte[] buffer = new byte[gzip.Length]; using (MemoryStream memory = new MemoryStream()) { int count = 0; do { count = stream.Read(buffer, 0, gzip.Length); if (count > 0) { memory.Write(buffer, 0, count); } }while (count > 0); return(memory.ToArray()); } } }
void StopCore(string msg) { coredead = true; Console.WriteLine("Core stopped."); for (int i = 0; i < soundbuffer.Length; i++) soundbuffer[i] = 0; var gz = new System.IO.Compression.GZipStream( new MemoryStream(Convert.FromBase64String(dispfont), false), System.IO.Compression.CompressionMode.Decompress); byte[] font = new byte[2048]; gz.Read(font, 0, 2048); gz.Dispose(); // cores aren't supposed to have bad dependencies like System.Drawing, right? int scx = 0; int scy = 0; foreach (char c in msg) { if (scx == 240 || c == '\n') { scy += 8; scx = 0; } if (scy == 160) break; if (c == '\r' || c == '\n') continue; if (c < 256 && c != ' ') { int fpos = c * 8; for (int j = 0; j < 8; j++) { for (int i = 0; i < 8; i++) { if ((font[fpos] >> i & 1) != 0) videobuffer[(scy + j) * 240 + scx + i] = unchecked((int)0xffff0000); else videobuffer[(scy + j) * 240 + scx + i] = unchecked((int)0xff000000); } fpos++; } } scx += 8; } }
public void receiveFileThread() { Directory.CreateDirectory(Path.GetDirectoryName(this.mStrFilePath)); System.IO.FileStream wout = null; for (int it = 0; it < 3; ++it) { try { wout = new System.IO.FileStream(this.mStrFilePath, FileMode.Create); } catch (Exception ex) { this.mParent.addLog("「" + this.mStrFilePath + "」が上書きできませんでした"); System.Threading.Thread.Sleep(500); } if (wout != null) { if (it > 0) { this.mParent.addLog("「" + this.mStrFilePath + "」に書き込めました"); } break; } } if (this.mData != null) { System.IO.Compression.GZipStream gzip = new System.IO.Compression.GZipStream(new MemoryStream(this.mData), System.IO.Compression.CompressionMode.Decompress); // System.IO.Compression.DeflateStream gzip = new System.IO.Compression.DeflateStream(new MemoryStream(this.mData), System.IO.Compression.CompressionMode.Decompress); // MemoryStream gzip = new MemoryStream(this.mData); byte[] buffer = new byte[1024 * 1024]; while (true) { int nReadSize = gzip.Read(buffer, 0, buffer.Length); if (nReadSize == 0) break; if (wout != null) wout.Write(buffer, 0, nReadSize); } gzip.Close(); } this.mParent.addLog("「" + this.mStrFilePath + "」を受信終了"); this.mParent.endReceiveFile(this.mStrFilePath); }
public void Zlib_GZipStream_FileName_And_Comments() { // select the name of the zip file string FileToCompress = System.IO.Path.Combine(TopLevelDir, "Zlib_GZipStream.dat"); Assert.IsFalse(System.IO.File.Exists(FileToCompress), "The temporary zip file '{0}' already exists.", FileToCompress); byte[] working = new byte[WORKING_BUFFER_SIZE]; int n = -1; int sz = this.rnd.Next(21000) + 15000; TestContext.WriteLine(" Creating file: {0} sz({1})", FileToCompress, sz); CreateAndFillFileText(FileToCompress, sz); System.IO.FileInfo fi1 = new System.IO.FileInfo(FileToCompress); int crc1 = DoCrc(FileToCompress); // four trials, all combos of FileName and Comment null or not null. for (int k = 0; k < 4; k++) { string CompressedFile = String.Format("{0}-{1}.compressed", FileToCompress, k); using (Stream input = File.OpenRead(FileToCompress)) { using (FileStream raw = new FileStream(CompressedFile, FileMode.Create)) { using (GZipStream compressor = new GZipStream(raw, CompressionMode.Compress, CompressionLevel.BestCompression, true)) { // FileName is optional metadata in the GZip bytestream if (k % 2 == 1) compressor.FileName = FileToCompress; // Comment is optional metadata in the GZip bytestream if (k > 2) compressor.Comment = "Compressing: " + FileToCompress; byte[] buffer = new byte[1024]; n = -1; while (n != 0) { if (n > 0) compressor.Write(buffer, 0, n); n = input.Read(buffer, 0, buffer.Length); } } } } System.IO.FileInfo fi2 = new System.IO.FileInfo(CompressedFile); Assert.IsTrue(fi1.Length > fi2.Length, String.Format("Compressed File is not smaller, trial {0} ({1}!>{2})", k, fi1.Length, fi2.Length)); // decompress twice: // once with System.IO.Compression.GZipStream and once with Alienlab.Zlib.GZipStream for (int j = 0; j < 2; j++) { using (var input = System.IO.File.OpenRead(CompressedFile)) { Stream decompressor = null; try { switch (j) { case 0: decompressor = new Alienlab.Zlib.GZipStream(input, CompressionMode.Decompress, true); break; case 1: decompressor = new System.IO.Compression.GZipStream(input, System.IO.Compression.CompressionMode.Decompress, true); break; } string DecompressedFile = String.Format("{0}.{1}.decompressed", CompressedFile, (j == 0) ? "Ionic" : "BCL"); TestContext.WriteLine("........{0} ...", System.IO.Path.GetFileName(DecompressedFile)); using (var s2 = System.IO.File.Create(DecompressedFile)) { n = -1; while (n != 0) { n = decompressor.Read(working, 0, working.Length); if (n > 0) s2.Write(working, 0, n); } } int crc2 = DoCrc(DecompressedFile); Assert.AreEqual<Int32>(crc1, crc2); } finally { if (decompressor != null) decompressor.Dispose(); } } } } }
private static string ReadFontSet(byte[] userSetBytes) { if (string.IsNullOrEmpty(appPath)) { return null; } try { //byte[] userSetBytes = System.IO.File.ReadAllBytes(bAsisFontSetPath); System.IO.MemoryStream uncomDataStream = new System.IO.MemoryStream(userSetBytes); using (System.IO.MemoryStream tempMemory = new System.IO.MemoryStream()) { gzip = new System.IO.Compression.GZipStream(uncomDataStream, System.IO.Compression.CompressionMode.Decompress); int count = 0; byte[] tempByte = new byte[1000]; while ((count = gzip.Read(tempByte, 0, tempByte.Length)) > 0) { tempMemory.Write(tempByte, 0, count); } gzip.Close(); uncomDataStream.Close(); string userSet = System.Text.UTF8Encoding.UTF8.GetString(tempMemory.ToArray()); //tempMemory.Close(); return userSet; } } catch (System.Exception) { return null; } }
public string GetMatchClientPayloadString() { string thiscontentType = GetHeaderMatchClient("Content-Type:"); if (string.IsNullOrEmpty(thiscontentType)) return ""; string retval = ""; foreach (string contenttype in TextContentTypes) { if (thiscontentType.ToLower().Contains(contenttype)) { string contentencoding = GetHeaderMatchClient("Content-Encoding:"); _matchClientPayload.Position = 0; if (contentencoding.ToLower().Contains("deflate")) { System.IO.Compression.DeflateStream ds = new System.IO.Compression.DeflateStream(_matchClientPayload, System.IO.Compression.CompressionMode.Decompress); byte[] buffer = new byte[8192]; MemoryStream ms = new MemoryStream(); int bytesread = ds.Read(buffer, 0, buffer.Length); while (bytesread != 0) { ms.Write(buffer, 0, bytesread); bytesread = ds.Read(buffer, 0, buffer.Length); } retval = System.Text.Encoding.Default.GetString(ms.GetBuffer()); } else if (contentencoding.ToLower().Contains("gzip")) { System.IO.Compression.GZipStream gz = new System.IO.Compression.GZipStream(_matchClientPayload, System.IO.Compression.CompressionMode.Decompress); byte[] buffer = new byte[8192]; MemoryStream ms = new MemoryStream(); int bytesread = 0; try { bytesread = gz.Read(buffer, 0, buffer.Length); } catch (Exception ex) { _downStreamExceptions.Add(ex); } while (bytesread != 0 & gz.CanRead) { ms.Write(buffer, 0, bytesread); try { bytesread = gz.Read(buffer, 0, buffer.Length); } catch (Exception ex) { _downStreamExceptions.Add(ex); break; } } retval = System.Text.Encoding.Default.GetString(ms.GetBuffer(), 0, (int)ms.Length); } else { byte[] thebytes = new byte[_matchClientPayload.Length]; _matchClientPayload.Read(thebytes, 0,(int) _matchClientPayload.Length); retval = System.Text.Encoding.Default.GetString(thebytes, 0, (int)_matchClientPayload.Length); } break; } } return retval; }
/// ファイルを受信する public static void receiveFiles(Network network, String strDirectory, FolderLANSync.SyncFolderMaster parent) { if ( strDirectory.Length > 3 && !Directory.Exists(strDirectory)) Directory.CreateDirectory(strDirectory); while (true) { byte nFlag = (byte)network.receiveByte(); if (nFlag == 0) break; String strFilePath = network.receiveString(); parent.addLog("「" + strFilePath + "」を受信開始"); byte[] data = network.receiveBinary(); // 先に受信してしまう strFilePath = Path.Combine(strDirectory, strFilePath); parent.beginReceiveFile(strFilePath); //フォルダを変更する前に呼び出す.監視をオフにする。 #if true // スレッド同期とってないし封印 { ReceiveThread receiveThread = new ReceiveThread(data, parent, strFilePath); Thread thread = new Thread(new ThreadStart(receiveThread.receiveFileThread)); thread.Start(); } #else Directory.CreateDirectory(Path.GetDirectoryName(strFilePath)); System.IO.FileStream wout = null; for (int it = 0; it < 3; ++it) { try { wout = new System.IO.FileStream(strFilePath, FileMode.Create); } catch (Exception ex) { parent.addLog("「" + strFilePath + "」が上書きできませんでした"); System.Threading.Thread.Sleep(500); } if (wout != null) { if (it > 0) { parent.addLog("「" + strFilePath + "」に書き込めました"); } } } if (data != null) { System.IO.Compression.GZipStream gzip = new System.IO.Compression.GZipStream(new MemoryStream(data), System.IO.Compression.CompressionMode.Decompress); byte[] buffer = new byte[1024 * 1024 * 50]; while (true) { int nReadSize = gzip.Read(buffer, 0, buffer.Length); if (nReadSize == 0) break; if ( wout != null ) wout.Write(buffer, 0, nReadSize); } gzip.Close(); } parent.addLog("「" + strFilePath + "」を受信終了"); if (wout != null) wout.Close(); parent.endReceiveFile(strFilePath); //フォルダを変更する前に呼び出す.監視をオフにする。 #endif } }
public static System.IO.MemoryStream TryLoadResourceStream(string streamName) { if (ResourceAssembly == null) return null; foreach (string name in ResourceAssembly.GetManifestResourceNames()) { if (name.EndsWith(streamName, StringComparison.OrdinalIgnoreCase)) { // Try to get as is using (System.IO.Stream s = ResourceAssembly.GetManifestResourceStream(name)) if (s != null) return new System.IO.MemoryStream(new System.IO.BinaryReader(s).ReadBytes((int)s.Length)); } if (name.EndsWith(streamName + ".gz", StringComparison.OrdinalIgnoreCase)) { // M'kay, maybe it's compressed using (System.IO.Stream s = ResourceAssembly.GetManifestResourceStream(name)) { if (s != null) using (System.IO.Compression.GZipStream gz = new System.IO.Compression.GZipStream(s, System.IO.Compression.CompressionMode.Decompress, true)) { System.IO.MemoryStream ms = new System.IO.MemoryStream(); byte[] bytes = new byte[16384]; int n; while ((n = gz.Read(bytes, 0, bytes.Length)) != 0) ms.Write(bytes, 0, n); ms.Position = 0; return ms; } } } } // Better luck next time return null; }
public byte[] GetMatchClientPayload() { Stream thestream = null; string transferEncoding = GetHeaderMatchClient("Transfer-Encoding:"); if (transferEncoding.Contains("chunked")) { thestream = DoChunkedTransferEndcoding(_matchClientPayload); } else { thestream = _matchClientPayload; } byte[] retval = null; string contentencoding = GetHeaderMatchClient("Content-Encoding:"); thestream.Position = 0; if (contentencoding.ToLower().Contains("deflate")) { System.IO.Compression.DeflateStream ds = new System.IO.Compression.DeflateStream(thestream, System.IO.Compression.CompressionMode.Decompress); byte[] buffer = new byte[8192]; MemoryStream ms = new MemoryStream(); int bytesread = ds.Read(buffer, 0, buffer.Length); while (bytesread != 0) { ms.Write(buffer, 0, bytesread); bytesread = ds.Read(buffer, 0, buffer.Length); } retval = ms.GetBuffer(); } else if (contentencoding.ToLower().Contains("gzip")) { System.IO.Compression.GZipStream gz = new System.IO.Compression.GZipStream(thestream, System.IO.Compression.CompressionMode.Decompress); byte[] buffer = new byte[8192]; MemoryStream ms = new MemoryStream(); int bytesread = 0; try { bytesread = gz.Read(buffer, 0, buffer.Length); } catch (Exception ex) { _downStreamExceptions.Add(ex); retval = new byte[_matchClientPayload.Length]; thestream.Position = 0; thestream.Read(retval, 0, (int)thestream.Length); } while (bytesread != 0 & gz.CanRead) { ms.Write(buffer, 0, bytesread); try { bytesread = gz.Read(buffer, 0, buffer.Length); } catch(Exception ex) { _downStreamExceptions.Add(ex); break; } } retval = new byte[ms.Length]; ms.Position = 0; ms.Read(retval, 0, (int)ms.Length); } else { retval = new byte[thestream.Length]; thestream.Position = 0; thestream.Read(retval, 0, (int)thestream.Length); } return retval; }
public byte[] GetClientPayload() { byte[] retval = null; string contentencoding = GetHeaderClient("Content-Encoding:"); _clientPayload.Position = 0; if (contentencoding.ToLower().Contains("deflate")) { System.IO.Compression.DeflateStream ds = new System.IO.Compression.DeflateStream(_clientPayload, System.IO.Compression.CompressionMode.Decompress); byte[] buffer = new byte[8192]; MemoryStream ms = new MemoryStream(); int bytesread = ds.Read(buffer, 0, buffer.Length); while (bytesread != 0) { ms.Write(buffer, 0, bytesread); bytesread = ds.Read(buffer, 0, buffer.Length); } retval = ms.GetBuffer(); } else if (contentencoding.ToLower().Contains("gzip")) { System.IO.Compression.GZipStream gz = new System.IO.Compression.GZipStream(_clientPayload, System.IO.Compression.CompressionMode.Decompress); byte[] buffer = new byte[8192]; MemoryStream ms = new MemoryStream(); int bytesread = 0; try { bytesread = gz.Read(buffer, 0, buffer.Length); } catch (Exception ex) { _upStreamExceptions.Add(ex); } while (bytesread != 0 & gz.CanRead) { ms.Write(buffer, 0, bytesread); try { bytesread = gz.Read(buffer, 0, buffer.Length); } catch (Exception ex) { _upStreamExceptions.Add(ex); break; } } retval = new byte[ms.Length]; ms.Position = 0; ms.Read(retval, 0, (int)ms.Length); } else { retval = new byte[_clientPayload.Length]; _clientPayload.Position = 0; _clientPayload.Read(retval, 0, (int)_clientPayload.Length); } return retval; }
static System.Reflection.Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args) { if (args.Name.StartsWith("System.Data.SQLite", StringComparison.OrdinalIgnoreCase)) { string rootDir = System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData) + Path.DirectorySeparatorChar + "GMap.NET" + Path.DirectorySeparatorChar; string dllDir = rootDir + "DllCache" + Path.DirectorySeparatorChar; string dll = dllDir + "SQLite_v84_NET" + Environment.Version.Major + "_" + (IntPtr.Size == 8 ? "x64" : "x86") + Path.DirectorySeparatorChar + "System.Data.SQLite.DLL"; if (!File.Exists(dll)) { string dir = Path.GetDirectoryName(dll); if (!Directory.Exists(dir)) { Directory.CreateDirectory(dir); } Debug.WriteLine("Saving to DllCache: " + dll); if (Environment.Version.Major == 2) { using (MemoryStream gzipDll = new MemoryStream((IntPtr.Size == 8 ? Properties.Resources.System_Data_SQLite_x64_NET2_dll : Properties.Resources.System_Data_SQLite_x86_NET2_dll))) { using (var gs = new System.IO.Compression.GZipStream(gzipDll, System.IO.Compression.CompressionMode.Decompress)) { using (MemoryStream exctDll = new MemoryStream()) { byte[] tmp = new byte[1024 * 256]; int r = 0; while ((r = gs.Read(tmp, 0, tmp.Length)) > 0) { exctDll.Write(tmp, 0, r); } File.WriteAllBytes(dll, exctDll.ToArray()); } } } } else if (Environment.Version.Major == 4) { using (MemoryStream gzipDll = new MemoryStream((IntPtr.Size == 8 ? Properties.Resources.System_Data_SQLite_x64_NET4_dll : Properties.Resources.System_Data_SQLite_x86_NET4_dll))) { using (var gs = new System.IO.Compression.GZipStream(gzipDll, System.IO.Compression.CompressionMode.Decompress)) { using (MemoryStream exctDll = new MemoryStream()) { byte[] tmp = new byte[1024 * 256]; int r = 0; while ((r = gs.Read(tmp, 0, tmp.Length)) > 0) { exctDll.Write(tmp, 0, r); } File.WriteAllBytes(dll, exctDll.ToArray()); } } } } } Debug.WriteLine("Assembly.LoadFile: " + dll); return(System.Reflection.Assembly.LoadFile(dll)); } return(null); }
public void accept(string txtName) { textName = txtName; string type = Request.ContentType; int separator = type.IndexOf("/"); string compressionFormat = type.Substring(separator+1); int len = txtName.Length; //compress byte[] stringToByte=new byte[len+1]; int byteIndex=0; foreach(char c in txtName.ToCharArray()) { stringToByte[byteIndex++] = (byte)c; } var bytes = Encoding.ASCII.GetBytes(txtName); System.IO.MemoryStream memoryStream = new System.IO.MemoryStream(); System.IO.Compression.GZipStream gzipStream = new System.IO.Compression.GZipStream(memoryStream,System.IO.Compression.CompressionMode.Compress); gzipStream.Write(bytes,0,bytes.Length); gzipStream.Close(); stringToByte = memoryStream.ToArray(); System.Text.StringBuilder stringBuilder = new System.Text.StringBuilder(stringToByte.Length); foreach(byte b in stringToByte) { stringBuilder.Append((char)b); } memoryStream.Close(); gzipStream.Dispose(); memoryStream.Dispose(); string s = stringBuilder.ToString(); //Decompress byte[] decompressStream=new byte[s.Length]; byteIndex=0; foreach(char c in s.ToCharArray()) { decompressStream[byteIndex++]=(byte)c; } System.IO.MemoryStream ms = new System.IO.MemoryStream(decompressStream); System.IO.Compression.GZipStream gs = new System.IO.Compression.GZipStream(ms,System.IO.Compression.CompressionMode.Decompress); int byteRead = gs.Read(decompressStream,0,decompressStream.Length); System.Text.StringBuilder builder = new System.Text.StringBuilder(byteRead); foreach(byte b in decompressStream) { builder.Append((char)b); } ms.Close(); gs.Close(); ms.Dispose(); gs.Dispose(); String str = builder.ToString(); int a = 0; }
public static MemoryStream DecompressGzip(Stream thestream) { MemoryStream ms = new MemoryStream(); using (System.IO.Compression.GZipStream gz = new System.IO.Compression.GZipStream(thestream, System.IO.Compression.CompressionMode.Decompress,true)) { byte[] buffer = new byte[8192]; int bytesread = 0; try { bytesread = gz.Read(buffer, 0, buffer.Length); } catch (Exception ex) { throw ex; } while (bytesread != 0 & gz.CanRead) { ms.Write(buffer, 0, bytesread); try { bytesread = gz.Read(buffer, 0, buffer.Length); } catch (Exception ex) { throw ex; } } ms.Position = 0; } return ms; }
public static string DecompressGzip(Stream input, Encoding e) { using (System.IO.Compression.GZipStream decompressor = new System.IO.Compression.GZipStream(input, System.IO.Compression.CompressionMode.Decompress)) { int read = 0; var buffer = new byte[BUFFER_SIZE]; using (MemoryStream output = new MemoryStream()) { while ((read = decompressor.Read(buffer, 0, buffer.Length)) > 0) { output.Write(buffer, 0, read); } return e.GetString(output.ToArray()); } } }
static System.Reflection.Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args) { if(args.Name.StartsWith("System.Data.SQLite", StringComparison.OrdinalIgnoreCase)) { string rootDir = System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData) + Path.DirectorySeparatorChar + "GMap.NET" + Path.DirectorySeparatorChar; string dllDir = rootDir + "DllCache" + Path.DirectorySeparatorChar; string dll = dllDir + "SQLite_v84_NET" + Environment.Version.Major + "_" + (IntPtr.Size == 8 ? "x64" : "x86") + Path.DirectorySeparatorChar + "System.Data.SQLite.DLL"; if(!File.Exists(dll)) { string dir = Path.GetDirectoryName(dll); if(!Directory.Exists(dir)) { Directory.CreateDirectory(dir); } Debug.WriteLine("Saving to DllCache: " + dll); if(Environment.Version.Major == 2) { using(MemoryStream gzipDll = new MemoryStream((IntPtr.Size == 8 ? Properties.Resources.System_Data_SQLite_x64_NET2_dll : Properties.Resources.System_Data_SQLite_x86_NET2_dll))) { using(var gs = new System.IO.Compression.GZipStream(gzipDll, System.IO.Compression.CompressionMode.Decompress)) { using(MemoryStream exctDll = new MemoryStream()) { byte[] tmp = new byte[1024 * 256]; int r = 0; while((r = gs.Read(tmp, 0, tmp.Length)) > 0) { exctDll.Write(tmp, 0, r); } File.WriteAllBytes(dll, exctDll.ToArray()); } } } } else if(Environment.Version.Major == 4) { using(MemoryStream gzipDll = new MemoryStream((IntPtr.Size == 8 ? Properties.Resources.System_Data_SQLite_x64_NET4_dll : Properties.Resources.System_Data_SQLite_x86_NET4_dll))) { using(var gs = new System.IO.Compression.GZipStream(gzipDll, System.IO.Compression.CompressionMode.Decompress)) { using(MemoryStream exctDll = new MemoryStream()) { byte[] tmp = new byte[1024 * 256]; int r = 0; while((r = gs.Read(tmp, 0, tmp.Length)) > 0) { exctDll.Write(tmp, 0, r); } File.WriteAllBytes(dll, exctDll.ToArray()); } } } } } Debug.WriteLine("Assembly.LoadFile: " + dll); return System.Reflection.Assembly.LoadFile(dll); } return null; }
private MemoryStream UncompressWmz(MemoryStream input) { MemoryStream wmfStream; input.Position = 0; if (input.ReadByte() == 0x1f && input.ReadByte() == 0x8b) { input.Position = 0; wmfStream = new MemoryStream(); var buffer = new byte[1024]; var compressedFile = new System.IO.Compression.GZipStream(input, System.IO.Compression.CompressionMode.Decompress, true); int bytesRead; while ((bytesRead = compressedFile.Read(buffer, 0, buffer.Length)) > 0) { wmfStream.Write(buffer, 0, bytesRead); } } else { wmfStream = input; } wmfStream.Position = 0; return wmfStream; }
static byte[] UnGzip(byte[] buffer) { if (buffer[0] == 31 && buffer[1] == 139) { MemoryStream msIn = new MemoryStream(buffer); MemoryStream msOut = new MemoryStream(); System.IO.Compression.GZipStream gzip = new System.IO.Compression.GZipStream(msIn, System.IO.Compression.CompressionMode.Decompress); byte[] data = new byte[2048]; while (true) { int count = gzip.Read(data, 0, 2048); msOut.Write(data, 0, count); if (count < 2048) { break; } } gzip.Close(); msOut.Close(); return msOut.ToArray(); } return buffer; }
public static string UnGZIP(ref byte[] input) { System.IO.MemoryStream oMemoryStream = null; System.IO.Compression.GZipStream oGZipStream = null; int iLength = 0; byte[] byteArray = new byte[100001]; System.Text.StringBuilder oStringBuilder = new System.Text.StringBuilder(); oMemoryStream = new System.IO.MemoryStream(input); oGZipStream = new System.IO.Compression.GZipStream(oMemoryStream, System.IO.Compression.CompressionMode.Decompress); oMemoryStream.Flush(); oGZipStream.Flush(); do { iLength = oGZipStream.Read(byteArray, 0, byteArray.Length); if (iLength < 1) break; // TODO: might not be correct. Was : Exit Do oStringBuilder.Append(System.Text.Encoding.UTF8.GetString(byteArray, 0, iLength)); } while (true); oGZipStream.Close(); oMemoryStream.Close(); oGZipStream.Dispose(); oMemoryStream.Dispose(); return oStringBuilder.ToString(); }
public void Read(string filename) { //展開する書庫のFileStreamを作成する System.IO.FileStream gzipFileStrm = new System.IO.FileStream( filename, System.IO.FileMode.Open, System.IO.FileAccess.Read); //圧縮解除モードのGZipStreamを作成する System.IO.Compression.GZipStream gzipStrm = new System.IO.Compression.GZipStream(gzipFileStrm, System.IO.Compression.CompressionMode.Decompress); //string temp = Path.GetTempFileName(); //展開先のファイルのFileStreamを作成する //System.IO.FileStream outFileStrm = new System.IO.FileStream( // temp, System.IO.FileMode.Create, System.IO.FileAccess.Write); System.IO.MemoryStream outFileStrm = new MemoryStream(); byte[] buffer = new byte[10240]; while (true) { //書庫から展開されたデータを読み込む int readSize = gzipStrm.Read(buffer, 0, buffer.Length); //最後まで読み込んだ時は、ループを抜ける if (readSize == 0) break; //展開先のファイルに書き込む outFileStrm.Write(buffer, 0, readSize); } //閉じる //outFileStrm.Close(); gzipStrm.Close(); ds.Clear(); outFileStrm.Position = 0; ds.ReadXml(outFileStrm); }
private void Decompress() { if (this._Compressed.Length == 0) { this._UnCompressed = string.Empty; return; } string Result = string.Empty; try { byte[] ZippedData = null; //Convert the compressed string into a byte array and decrypt the array if required if (this._Passphrase.Length > 0) { ZippedData = Decrypt(System.Convert.FromBase64String(this._Compressed)); } else { ZippedData = System.Convert.FromBase64String(this._Compressed); } //Decompress the byte array System.IO.MemoryStream objMemStream = new System.IO.MemoryStream(ZippedData); System.IO.Compression.GZipStream objGZipStream = new System.IO.Compression.GZipStream(objMemStream, System.IO.Compression.CompressionMode.Decompress); byte[] sizeBytes = new byte[4]; objMemStream.Position = objMemStream.Length - 4; objMemStream.Read(sizeBytes, 0, 4); int iOutputSize = BitConverter.ToInt32(sizeBytes, 0); objMemStream.Position = 0; byte[] UnZippedData = new byte[iOutputSize]; objGZipStream.Read(UnZippedData, 0, iOutputSize); objGZipStream.Dispose(); objMemStream.Dispose(); //Convert the decompressed byte array back to a string Result = this._TextEncoding.GetString(UnZippedData); } catch (Exception) { } finally { this._UnCompressed = Result; } }
public static List<NOcrChar> LoadNOcrForTesseract(string xmlRessourceName) { var nocrChars = new List<NOcrChar>(); Assembly asm = Assembly.GetExecutingAssembly(); Stream strm = asm.GetManifestResourceStream(xmlRessourceName); if (strm != null) { XmlDocument doc = new XmlDocument(); var rdr = new StreamReader(strm); using (var zip = new System.IO.Compression.GZipStream(rdr.BaseStream, System.IO.Compression.CompressionMode.Decompress)) { byte[] data = new byte[175000]; zip.Read(data, 0, 175000); doc.LoadXml(Encoding.UTF8.GetString(data)); } rdr.Close(); try { foreach (XmlNode node in doc.DocumentElement.SelectNodes("Char")) { var oc = new NOcrChar(node.Attributes["Text"].Value); oc.Width = Convert.ToInt32(node.Attributes["Width"].Value, CultureInfo.InvariantCulture); oc.Height = Convert.ToInt32(node.Attributes["Height"].Value, CultureInfo.InvariantCulture); oc.MarginTop = Convert.ToInt32(node.Attributes["MarginTop"].Value, CultureInfo.InvariantCulture); if (node.Attributes["Italic"] != null) oc.Italic = Convert.ToBoolean(node.Attributes["Italic"].Value, CultureInfo.InvariantCulture); if (node.Attributes["ExpandCount"] != null) oc.ExpandCount = Convert.ToInt32(node.Attributes["ExpandCount"].Value, CultureInfo.InvariantCulture); foreach (XmlNode pointNode in node.SelectNodes("Point")) { var op = new NOcrPoint(DecodePoint(pointNode.Attributes["Start"].Value), DecodePoint(pointNode.Attributes["End"].Value)); XmlAttribute a = pointNode.Attributes["On"]; if (a != null && Convert.ToBoolean(a.Value)) oc.LinesForeground.Add(op); else oc.LinesBackground.Add(op); } nocrChars.Add(oc); } } catch (Exception exception) { MessageBox.Show(exception.Message); } } return nocrChars; }
static void UnZipFile(string file) { var target = file.Substring(0, file.LastIndexOf(".")); using (var fs = System.IO.File.OpenRead(file)) using (var gz = new System.IO.Compression.GZipStream(fs, System.IO.Compression.CompressionMode.Decompress)) using (var ts = System.IO.File.OpenWrite(target)) { var buffer = new byte[0x400]; var count = 0; while ((count = gz.Read(buffer, 0, buffer.Length)) > 0) { ts.Write(buffer, 0, count); } } }