public IEnumerable <PCKFileEntry> ReadFileV3(PCKStream stream) { stream.Seek(-8, SeekOrigin.End); int FilesCount = stream.ReadInt32(); form.UpdateProgressBar(form.Controls["progBar"], "max", FilesCount); stream.Seek(-280, SeekOrigin.End); long FileTableOffset = stream.ReadInt64() ^ stream.key.KEY_1; stream.Seek(FileTableOffset, SeekOrigin.Begin); BinaryReader TableStream = new BinaryReader(new MemoryStream(stream.ReadBytes((int)(stream.GetLenght() - FileTableOffset - 288)))); for (int i = 0; i < FilesCount; ++i) { int EntrySize = TableStream.ReadInt32() ^ stream.key.KEY_1; TableStream.ReadInt32(); yield return(new PCKFileEntry(TableStream.ReadBytes(EntrySize), version)); } }
public int GetFilesCount(PCKStream stream) { stream.Seek(-8, SeekOrigin.End); return(stream.ReadInt32()); }