public static ArchiveFileAr FromStream(Stream stream) { ArchiveFileAr file = new ArchiveFileAr(); byte[] buffer = new byte[Windows.Constants.IMAGE_ARCHIVE_START_SIZE]; stream.Read(buffer, 0, Windows.Constants.IMAGE_ARCHIVE_START_SIZE); bool valid = Encoding.ASCII.GetString(buffer) == Windows.Constants.IMAGE_ARCHIVE_START; if (!valid) throw new InvalidDataException("Not a valid archive file"); file.first.FromStream(stream); file.second.FromStream(stream); return file; }