private void OpenReadmeWindow() { if (string.IsNullOrEmpty(this.ModList.Readme)) { return; } using (var fs = new FileStream(this.ModListPath, FileMode.Open, FileAccess.Read, FileShare.Read)) using (var ar = new ZipArchive(fs, ZipArchiveMode.Read)) using (var ms = new MemoryStream()) { var entry = ar.GetEntry(this.ModList.Readme); if (entry == null) { Utils.Log($"Tried to open a non-existant readme: {this.ModList.Readme}"); return; } using (var e = entry.Open()) { e.CopyTo(ms); } ms.Seek(0, SeekOrigin.Begin); using (var reader = new StreamReader(ms)) { var viewer = new TextViewer(reader.ReadToEnd(), this.ModList.Name); viewer.Show(); } } }
public void OpenReadmeWindow() { if (string.IsNullOrEmpty(Readme)) { return; } if (SourceModList.ReadmeIsWebsite) { Utils.OpenWebsite(new Uri(Readme)); } else { using var fs = ModListPath.OpenShared(); using var ar = new ZipArchive(fs, ZipArchiveMode.Read); using var ms = new MemoryStream(); var entry = ar.GetEntry(Readme); if (entry == null) { Utils.Log($"Tried to open a non-existent readme: {Readme}"); return; } using (var e = entry.Open()) { e.CopyTo(ms); } ms.Seek(0, SeekOrigin.Begin); using var reader = new StreamReader(ms); var viewer = new TextViewer(reader.ReadToEnd(), Name); viewer.Show(); } }