// Methods public void Dissect() { byte[] buffer = new byte[0x800]; using (ZipInputStream stream2 = new ZipInputStream(this.MS)) { for (ZipEntry entry = stream2.GetNextEntry(); entry != null; entry = stream2.GetNextEntry()) { if (!entry.IsDirectory) { ZipFileEntry item = new ZipFileEntry { Name = entry.FileName }; MemoryStream stream = new MemoryStream(); if (Strings.Len(this.Pass) > 0) { stream2.Password = this.Pass; } if (entry.UncompressedSize > 0L) { for (int i = stream2.Read(buffer, 0, buffer.Length); i > 0; i = stream2.Read(buffer, 0, buffer.Length)) { stream.Write(buffer, 0, i); } } item.contents = stream.ToArray(); this.Files.Add(item, null, null, null); } else { ZipFileEntry entry3 = new ZipFileEntry { IsDir = true, Name = entry.FileName }; } } } }