コード例 #1
0
 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();
                 }
             }
 }
コード例 #2
0
        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();
            }
        }