public static void uncompressFile(string inFile, string outFile) { int data = 0; int stopByte = -1; System.IO.FileStream outFileStream = new System.IO.FileStream(outFile, System.IO.FileMode.Create); ZInputStream inZStream = new ZInputStream(System.IO.File.Open(inFile, System.IO.FileMode.Open, System.IO.FileAccess.Read)); while (stopByte != (data = inZStream.Read())) { byte _dataByte = (byte)data; outFileStream.WriteByte(_dataByte); } inZStream.Close(); outFileStream.Close(); }
public static void DecompressFile(string inFile, string outFile) { int data; const int stopByte = -1; var outFileStream = new FileStream(outFile, FileMode.Create); var inZStream = new ZInputStream(File.Open(inFile, FileMode.Open, FileAccess.Read)); while (stopByte != (data = inZStream.Read())) { var databyte = (byte) data; outFileStream.WriteByte(databyte); } inZStream.Close(); outFileStream.Close(); }
public void uncompressFile(string inFile, string outFile) { try { int data = 0; int stopByte = -1; System.IO.FileStream outFileStream = new System.IO.FileStream(outFile, System.IO.FileMode.Create); ZInputStream inZStream = new ZInputStream(System.IO.File.Open(inFile, System.IO.FileMode.Open, System.IO.FileAccess.Read)); while (stopByte != (data = inZStream.Read())) { byte _dataByte = (byte)data; outFileStream.WriteByte(_dataByte); } inZStream.Close(); outFileStream.Close(); } catch { Client.Log("Unable to find a file to uncompress"); } }
public static OSD ZDecompressBytesToOsd(byte[] input) { OSD osd = null; using (MemoryStream msSinkUnCompressed = new MemoryStream()) { using(ZInputStream zOut = new ZInputStream(msSinkUnCompressed)) { zOut.Read(input, 0, input.Length); msSinkUnCompressed.Seek(0L, SeekOrigin.Begin); osd = OSDParser.DeserializeLLSDBinary(msSinkUnCompressed.ToArray()); zOut.Close(); } } return osd; }
/// <summary> /// 解压 /// </summary> /// <param name="param"></param> /// <returns></returns> static public void DecompressByteZipNet(byte[] inBytes, uint startPos, uint inLen, ref byte[] outBytes, ref uint outLen) { MemoryStream outStream = new MemoryStream(); MemoryStream outms = new MemoryStream(); outms.Write(inBytes, (int)startPos, (int)inLen); outms.Position = 0; ZInputStream outzipStream = new ZInputStream(outms); byte[] writeData = new byte[1024]; try { int size = 0; while ((size = outzipStream.read(writeData, 0, writeData.Length)) > 0) { if (size > 0) { outStream.Write(writeData, 0, size); } else { Ctx.m_instance.m_logSys.log("ZipNet Decompress Error"); } } outzipStream.Close(); // 一定要先 Close ZipOutputStream ,然后再获取 ToArray ,如果不关闭, ToArray 将不能返回正确的值 outBytes = outStream.ToArray(); outLen = (uint)outBytes.Length; outStream.Close(); outms.Close(); } catch { Ctx.m_instance.m_logSys.log("DecompressByteZipNet error"); } }