/// <summary> /// /// </summary> /// <returns></returns> public bool GetNextEntry(ZipEntry entry) { if (_index >= _entryCount) { return(false); } _stream.position = _pos + 28; int len = _stream.ReadUshort(); int len2 = _stream.ReadUshort() + _stream.ReadUshort(); _stream.position = _pos + 46; string name = _stream.ReadString(len); name = name.Replace("\\", "/"); entry.name = name; if (name[name.Length - 1] == '/') //directory { entry.isDirectory = true; entry.compress = 0; entry.crc = 0; entry.size = entry.sourceSize = 0; entry.offset = 0; } else { entry.isDirectory = false; _stream.position = _pos + 10; entry.compress = _stream.ReadUshort(); _stream.position = _pos + 16; entry.crc = _stream.ReadUint(); entry.size = _stream.ReadInt(); entry.sourceSize = _stream.ReadInt(); _stream.position = _pos + 42; entry.offset = _stream.ReadInt() + 30 + len; } _pos += 46 + len + len2; _index++; return(true); }
/// <summary> /// /// </summary> /// <param name="stream"></param> public ZipReader(byte[] data) { _stream = new ByteBuffer(data); _stream.littleEndian = true; int pos = _stream.length - 22; _stream.position = pos + 10; _entryCount = _stream.ReadShort(); _stream.position = pos + 16; _pos = _stream.ReadInt(); }
/// <summary> /// /// </summary> /// <param name="stream"></param> public ZipReader(byte[] data) { _stream = new ByteBuffer(data); _stream.endian = ByteBuffer.Endian.LITTLE_ENDIAN; int pos = _stream.length - 22; _stream.position = pos + 10; _entryCount = _stream.ReadShort(); _stream.position = pos + 16; _pos = _stream.ReadInt(); }
static public int ReadInt(IntPtr l) { try { FairyGUI.Utils.ByteBuffer self = (FairyGUI.Utils.ByteBuffer)checkSelf(l); var ret = self.ReadInt(); pushValue(l, true); pushValue(l, ret); return(2); } catch (Exception e) { return(error(l, e)); } }
public void Load(ByteBuffer ba) { ba.ReadInt(); pixelWidth = ba.ReadInt(); scale = 1.0f / ba.ReadByte(); int len = ba.ReadInt(); pixels = new byte[len]; for (int i = 0; i < len; i++) pixels[i] = ba.ReadByte(); }