private void importCurationToolStripMenuItem_Click(object sender, EventArgs e) { if (openCurationFileDialog.ShowDialog() == DialogResult.OK) { var logoStream = new MemoryStream(); var ssStream = new MemoryStream(); var metaStream = new MemoryStream(); using (var zip = ZipFile.OpenRead(openCurationFileDialog.FileName)) { ZipArchiveEntry logoEntry, ssEntry, metaEntry; if (!zip.TryFind("logo.png", out logoEntry)) { MessageBox.Show("Cannot import curation. Missing logo.png.", "Invalid curation.", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (!zip.TryFind("ss.png", out ssEntry)) { MessageBox.Show("Cannot import curation. Missing ss.png.", "Invalid curation.", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (!zip.TryFind("meta.txt", out metaEntry)) { MessageBox.Show("Cannot import curation. Missing meta.txt.", "Invalid curation.", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } logoEntry.Open().CopyTo(logoStream); ssEntry.Open().CopyTo(ssStream); metaEntry.Open().CopyTo(metaStream); } SetLogo(Image.FromStream(logoStream)); SetScreenshot(Image.FromStream(ssStream)); SetContent(ZipContentSource.FromPath(openCurationFileDialog.FileName)); LoadCuration(MetaParser.Deserialize <Curation>(metaStream)); } }