private void OpenTarFile(Stream stream) { _stream = stream; Files = new List<TarHeader>(); long length = stream.Length; long pos = 0; stream.Position = 0; while (pos + 512 < length) { stream.Seek(pos, SeekOrigin.Begin); var th = new TarHeader(stream); if (th.FileSizeInBytes > 0) Files.Add(th); pos += TarHeader.HeaderSize + th.FileSizeInBytes; if (pos % TarHeader.HeaderSize > 0) pos += 512 - (pos % TarHeader.HeaderSize); } }