Ejemplo n.º 1
0
        static byte[] doGZconvert(ref typZipHead objZiphead, ref byte[] bytBuffer)
        {
            MemoryStream objMemory = new MemoryStream();

            objMemory.Write(new byte[] { 0x1f, 0x8b, 8, 8 }, 0, 4);
            objMemory.Write(new byte[] { 0, 0, 0, 0 }, 0, 4);
            objMemory.Write(new byte[] { 2, 0 }, 0, 2);
            objMemory.Write(bytBuffer, 0, objZiphead.zipFileNameLength);
            objMemory.WriteByte(0);
            objMemory.Write(bytBuffer, objZiphead.zipFileNameLength, (int)objZiphead.zipCompressedSize);
            objMemory.Write(BitConverter.GetBytes(objZiphead.zipCRC), 0, 4);
            objMemory.Write(BitConverter.GetBytes(objZiphead.zipUncompressedSize), 0, 4);
            bytBuffer = doGZextract(ref objMemory);
            return(bytBuffer);
        }
Ejemplo n.º 2
0
        static byte[] unZip(string filZipname)
        {
            BinaryReader reader     = new BinaryReader(File.Open(filZipname, FileMode.Open, FileAccess.Read));
            typZipHead   objZiphead = new typZipHead();

            reader.BaseStream.Seek(0x1aL, SeekOrigin.Begin);
            objZiphead.zipFileNameLength = reader.ReadInt16();
            reader.BaseStream.Seek((long)(-80 - objZiphead.zipFileNameLength), SeekOrigin.End);
            objZiphead.zipCRC              = reader.ReadInt32();
            objZiphead.zipCompressedSize   = reader.ReadInt32();
            objZiphead.zipUncompressedSize = reader.ReadInt32();
            reader.BaseStream.Seek(30L, SeekOrigin.Begin);
            byte[] bytBuffer = new byte[(objZiphead.zipFileNameLength + ((int)objZiphead.zipCompressedSize)) + 1];
            int    num2      = bytBuffer.Length - 1;

            for (int i = 0; i <= num2; i++)
            {
                bytBuffer[i] = reader.ReadByte();
            }
            bytBuffer = doGZconvert(ref objZiphead, ref bytBuffer);
            reader.Close();
            return(bytBuffer);
        }